Home | History | Annotate | Line # | Download | only in dist
ChangeLog revision 1.1
      1  1.1  christos 2020-01-20         Arnold D. Robbins     <arnold (a] skeeve.com>
      2  1.1  christos 
      3  1.1  christos 	* run.c (openfile): Set the close-on-exec flag for file
      4  1.1  christos 	and pipe redirections that aren't stdin/stdout/stderr.
      5  1.1  christos 
      6  1.1  christos 2020-01-06         Arnold D. Robbins     <arnold (a] skeeve.com>
      7  1.1  christos 
      8  1.1  christos 	Minor fixes.
      9  1.1  christos 	* b.c (replace_repeat): Turn init_q back into an int.
     10  1.1  christos 	* lex.c (string): Use \a instead of \007.
     11  1.1  christos 	* tran.c (catstr): Use snprintf instead of sprintf.
     12  1.1  christos 
     13  1.1  christos 2020-01-01         Arnold D. Robbins     <arnold (a] skeeve.com>
     14  1.1  christos 
     15  1.1  christos 	* tran.c (syminit, arginit, envinit): Free sval member before
     16  1.1  christos 	setting it. Thanks to valgrind.
     17  1.1  christos 	* b.c: Small formatting cleanups in several routines.
     18  1.1  christos 
     19  1.1  christos 2019-12-27         Arnold D. Robbins     <arnold (a] skeeve.com>
     20  1.1  christos 
     21  1.1  christos 	* b.c (replace_repeat): Fix a bug whereby a{0,3} could match
     22  1.1  christos 	four a's.  Thanks to Anonymous AWK fan <awkfan77 (a] mailfence.com>
     23  1.1  christos 	for the report. Also, minor code formatting cleanups.
     24  1.1  christos 	* testdir/T.int-expr: New file.
     25  1.1  christos 
     26  1.1  christos 2019-12-11         Arnold D. Robbins     <arnold (a] skeeve.com>
     27  1.1  christos 
     28  1.1  christos 	* README: Renamed to ...
     29  1.1  christos 	* README.md: ... this. Cleaned up some as well,
     30  1.1  christos 	including moving to Markdown.
     31  1.1  christos 
     32  1.1  christos 2019-11-08         Arnold D. Robbins     <arnold (a] skeeve.com>
     33  1.1  christos 
     34  1.1  christos 	* test/T.chem: Use $oldawk instead of hardwiring 'awk'.
     35  1.1  christos 	* test/T.lilly: Remove gawk warnings from output, improves
     36  1.1  christos 	portability.
     37  1.1  christos 
     38  1.1  christos 2019-10-17         Arnold D. Robbins     <arnold (a] skeeve.com>
     39  1.1  christos 
     40  1.1  christos 	Pull in systime() and strftime() from the NetBSD awk.
     41  1.1  christos 
     42  1.1  christos 	* awk.1: Document the functions.
     43  1.1  christos 	* run.c (bltin): Implement the functions.
     44  1.1  christos 	* awk.h: Add defines for systime and strftime.
     45  1.1  christos 	* lex.c: Add support for systime and strftime.
     46  1.1  christos 
     47  1.1  christos 2019-10-07         Arnold D. Robbins     <arnold (a] skeeve.com>
     48  1.1  christos 
     49  1.1  christos 	Integrate features from different *BSD versions of awk.
     50  1.1  christos 	Gensub support from NetBSD. Bitwise functions from OpenBSD.
     51  1.1  christos 
     52  1.1  christos 	* awk.h: Add defines for and, or, xor, compl, lshift and rshift.
     53  1.1  christos 	* awkgram.y: Add support for gensub.
     54  1.1  christos 	* maketab.c: Ditto.
     55  1.1  christos 	* lex.c: Add support for gensub and bitwise functions.
     56  1.1  christos 	* parse.c (node5, op5): New functions.
     57  1.1  christos 	* proto.h (node5, op5): New declarations.
     58  1.1  christos 	* run.c (bltin): Implement the bitwise functions.
     59  1.1  christos 	(gensub): New function.
     60  1.1  christos 	* awk.1: Document additional functions.
     61  1.1  christos 
     62  1.1  christos 2019-10-07         Arnold D. Robbins     <arnold (a] skeeve.com>
     63  1.1  christos 
     64  1.1  christos 	* b.c (fnematch): Change type of pbuf from unsigned char to char.
     65  1.1  christos 	* proto.h (fnematch): Ditto.
     66  1.1  christos 
     67  1.1  christos 2019-10-06         Arnold D. Robbins     <arnold (a] skeeve.com>
     68  1.1  christos 
     69  1.1  christos 	* lib.c (readrec): Allow RS a regular expression. Imported
     70  1.1  christos 	the code from the NetBSD awk.
     71  1.1  christos 	* b.c (fnematch): New function for implementing the feature.
     72  1.1  christos 	* awk.1: Updated.
     73  1.1  christos 	* main.c (version): Updated.
     74  1.1  christos 
     75  1.1  christos 2019-06-24         Arnold D. Robbins     <arnold (a] skeeve.com>
     76  1.1  christos 
     77  1.1  christos 	* makefile: Revise to take into account there is no more awktest.tar,
     78  1.1  christos 	add targets 'check' and 'test', and also 'testclean' to clean up
     79  1.1  christos 	after test run.  Have 'clean' and 'cleaner' depend upon 'testclean'.
     80  1.1  christos 
     81  1.1  christos 2019-06-23         Arnold D. Robbins     <arnold (a] skeeve.com>
     82  1.1  christos 
     83  1.1  christos 	* testdir: Extracted from awktest.tar and added to Git.
     84  1.1  christos 	* awktest.tar: Removed.
     85  1.1  christos 
     86  1.1  christos 2019-06-06         Arnold D. Robbins     <arnold (a] skeeve.com>
     87  1.1  christos 
     88  1.1  christos 	* awk.1: Fix a typo, minor edits.
     89  1.1  christos 
     90  1.1  christos 2019-06-05         Arnold D. Robbins     <arnold (a] skeeve.com>
     91  1.1  christos 
     92  1.1  christos 	* b.c (relex): Count parentheses and treat umatched right paren
     93  1.1  christos 	as a literal character.
     94  1.1  christos 	* awktest.tar (testdir/T.re): Added a test case.
     95  1.1  christos 	* main.c (version): Updated.
     96  1.1  christos 
     97  1.1  christos 2019-05-29         Arnold D. Robbins     <arnold (a] skeeve.com>
     98  1.1  christos 
     99  1.1  christos 	* lib.c (isclvar): Remove check for additional '=' after
    100  1.1  christos 	first one. No longer needed.
    101  1.1  christos 
    102  1.1  christos 2019-01-26         Arnold D. Robbins     <arnold (a] skeeve.com>
    103  1.1  christos 
    104  1.1  christos 	* main.c (version): Updated.
    105  1.1  christos 
    106  1.1  christos 2019-01-25         Arnold D. Robbins     <arnold (a] skeeve.com>
    107  1.1  christos 
    108  1.1  christos 	* run.c (awkgetline): Check for numeric value in all getline
    109  1.1  christos 	variants. See the numeric-getline.* files in bugs-fixed directory.
    110  1.1  christos 
    111  1.1  christos 2018-08-29         Arnold D. Robbins     <arnold (a] skeeve.com>
    112  1.1  christos 
    113  1.1  christos 	* REGRESS: Check for existence of a.out. If not there, run
    114  1.1  christos 	make.  Enable core dumps for T.arnold system status test
    115  1.1  christos 	to work on MacOS X.
    116  1.1  christos 
    117  1.1  christos 2018-08-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    118  1.1  christos 
    119  1.1  christos 	* awktest.tar (testdir/T.expr): Fix test for unary plus.
    120  1.1  christos 
    121  1.1  christos 2018-08-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    122  1.1  christos 
    123  1.1  christos 	* REGRESS: Extract tests if necessary, set PATH to include '.'.
    124  1.1  christos 	* regdir/beebe.tar (Makefile): Fix longwrds test to prefix
    125  1.1  christos 	sort with LC_ALL=C.
    126  1.1  christos 	* awktest.tar: Updated from fixed test suite, directory
    127  1.1  christos 	it extracts is now called 'testdir' to match what's in top-level
    128  1.1  christos 	REGRESS script.
    129  1.1  christos 	* regdir: Removed, as Brian wants to keep the test suite in
    130  1.1  christos 	the tar file.
    131  1.1  christos 
    132  1.1  christos 2018-08-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    133  1.1  christos 
    134  1.1  christos 	* FIXES, lib.c, run.c, makefile, main.c: Merge from Brian's tree.
    135  1.1  christos 	* REGRESS: New file, from Brian.
    136  1.1  christos 	* awktest.tar: Restored from Brian's tree.
    137  1.1  christos 
    138  1.1  christos 2018-08-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    139  1.1  christos 
    140  1.1  christos 	* awkgram.y (UPLUS): New token. In the grammar, call op1()
    141  1.1  christos 	with it.
    142  1.1  christos 	* maketab.c (proc): Add entry for UPLUS.
    143  1.1  christos 	* run.c (arith): Handle UPLUS.
    144  1.1  christos 	* main.c (version): Updated.
    145  1.1  christos 	* bugs-fixed/unary-plus.awk, bugs-fixed/unary-plus.bad,
    146  1.1  christos 	bugs-fixed/unary-plus.ok: New files.
    147  1.1  christos 
    148  1.1  christos 2018-08-10         Arnold D. Robbins     <arnold (a] skeeve.com>
    149  1.1  christos 
    150  1.1  christos 	* TODO: Updated.
    151  1.1  christos 	* awk.1: Improve use of macros, add some additional explanation
    152  1.1  christos 	in a few places, alphabetize list of variables.
    153  1.1  christos 
    154  1.1  christos 2018-08-08         Arnold D. Robbins     <arnold (a] skeeve.com>
    155  1.1  christos 
    156  1.1  christos 	* awk.h (Cell): Add new field `fmt' to track xFMT value used
    157  1.1  christos 	for a string conversion.
    158  1.1  christos 	[CONVC, CONVO]: New flag macros.
    159  1.1  christos 	* bugs-fixed/README: Updated.
    160  1.1  christos 	* bugs-fixed/string-conv.awk, bugs-fixed/string-conv.bad,
    161  1.1  christos 	bugs-fixed/string-conv.ok: New files.
    162  1.1  christos 	* main.c (version): Updated.
    163  1.1  christos 	* proto.h (flags2str): Add declaration.
    164  1.1  christos 	* tran.c (setfval): Clear CONVC and CONVO flags and set vp->fmt
    165  1.1  christos 	to NULL.
    166  1.1  christos 	(setsval): Ditto. Add large comment and new code to manage
    167  1.1  christos 	correct conversion of number to string based on various flags
    168  1.1  christos 	and the value of vp->fmt. The idea is to not convert again
    169  1.1  christos 	if xFMT is the same as before and we're doing the same conversion.
    170  1.1  christos 	Otherwise, clear the old flags, set the new, and reconvert.
    171  1.1  christos 	(flags2str): New function. For debug prints and for use from a debugger.
    172  1.1  christos 
    173  1.1  christos 2018-08-05         Arnold D. Robbins     <arnold (a] skeeve.com>
    174  1.1  christos 
    175  1.1  christos 	Fix filename conflicts in regdir where the only difference was
    176  1.1  christos 	in letter case. This caused problems on Windows systems.
    177  1.1  christos 
    178  1.1  christos 	* regdir/Compare.T1: Renamed from regdir/Compare.T.
    179  1.1  christos 	* regdir/t.delete0: Renamed from regdir/t.delete.
    180  1.1  christos 	* regdir/t.getline1: Renamed from regdir/t.getline.
    181  1.1  christos 	* regdir/t.redir1: Renamed from regdir/t.redir.
    182  1.1  christos 	* regdir/t.split1: Renamed from regdir/t.split.
    183  1.1  christos 	* regdir/t.sub0: Renamed from regdir/t.sub.
    184  1.1  christos 	* regdir/REGRESS: Adjusted.
    185  1.1  christos 
    186  1.1  christos 2018-08-04         Arnold D. Robbins     <arnold (a] skeeve.com>
    187  1.1  christos 
    188  1.1  christos 	With scalpel, tweasers, magnifying glass and bated breath,
    189  1.1  christos 	borrow code from the NetBSD version of nawk to fix the years-old
    190  1.1  christos 	bug whereby decrementing the value of NF did not change the
    191  1.1  christos 	record.
    192  1.1  christos 
    193  1.1  christos 	* lib.c (fldbld): Set donerec to 1 when done.
    194  1.1  christos 	(setlastfld): New function.
    195  1.1  christos 	* proto.h (setlastfld): Add declaration.
    196  1.1  christos 	* run.c (copycell): Make code smarter about flags (from NetBSD code).
    197  1.1  christos 	* tran.c (setfree): New function.
    198  1.1  christos 	* tran.c (setfval): Normalize negative zero to positive zero.
    199  1.1  christos 	If setting NF, clear donerec and call setlastfld().
    200  1.1  christos 	(setsval): Remove call to save_old_OFS().  If setting OFS, call
    201  1.1  christos 	recbld(). If setting NF, clear donerec and call setlastfld().
    202  1.1  christos 
    203  1.1  christos 	As part of the process, revert OFS-related changes of 2018-05-22:
    204  1.1  christos 
    205  1.1  christos 	* awk.h (saveOFS, saveOFSlen, save_old_OFS): Remove declarations.
    206  1.1  christos 	* lib.c (recbld): Use *OFS instead of saveOFS.
    207  1.1  christos 	* run.c (saveOFS, saveOFSlen, save_old_OFS): Remove.
    208  1.1  christos 	* tran.c (syminit): Remove initialization of saveOFS and saveOFSlen.
    209  1.1  christos 
    210  1.1  christos 	General stuff that goes along with all this:
    211  1.1  christos 
    212  1.1  christos 	* bugs-fixed/README: Updated.
    213  1.1  christos 	* bugs-fixed/decr-NF.awk, bugs-fixed/decr-NF.bad,
    214  1.1  christos 	bugs-fixed/decr-NF.ok: New files.
    215  1.1  christos 	* main.c (version): Updated.
    216  1.1  christos 	* regdir/README.TESTS: Fix awk book title.
    217  1.1  christos 	* regdir/T.misc: Revise test to match fixed code.
    218  1.1  christos 	* run.c (format): Increase size of buffer used for %a test. (Unrelated
    219  1.1  christos 	to NF or OFS, but fixes a compiler complaint.)
    220  1.1  christos 
    221  1.1  christos 2018-06-07         Arnold D. Robbins     <arnold (a] skeeve.com>
    222  1.1  christos 
    223  1.1  christos 	* regdir/beebe.tar: Fix longwrds.ok so that the test will pass.
    224  1.1  christos 	The file was incorrectly sorted.
    225  1.1  christos 
    226  1.1  christos 2018-06-06         Arnold D. Robbins     <arnold (a] skeeve.com>
    227  1.1  christos 
    228  1.1  christos 	* regdir/T.lilly: Fix the bug again in the second instance
    229  1.1  christos 	of the code. Thanks to BWK for pointing this out.
    230  1.1  christos 
    231  1.1  christos 2018-05-31         Arnold D. Robbins     <arnold (a] skeeve.com>
    232  1.1  christos 
    233  1.1  christos 	* regdir/T.lilly: Fix a syntax error and ordering bug
    234  1.1  christos 	in creating the 'foo' file.
    235  1.1  christos 
    236  1.1  christos 2018-05-23         Arnold D. Robbins     <arnold (a] skeeve.com>
    237  1.1  christos 
    238  1.1  christos 	* awk.1: Remove standalone 'awk' at the top of file, it messed up
    239  1.1  christos 	the formatting. Arrange built-in variable list in alphabetical
    240  1.1  christos 	order.
    241  1.1  christos 
    242  1.1  christos 2018-05-23         Arnold D. Robbins     <arnold (a] skeeve.com>
    243  1.1  christos 
    244  1.1  christos 	* main.c (version): Add my email address and a date so that
    245  1.1  christos 	users can tell this isn't straight BWK awk.
    246  1.1  christos 	* README.md: Minor updates.
    247  1.1  christos 	* TODO: Updated.
    248  1.1  christos 
    249  1.1  christos 2018-05-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    250  1.1  christos 
    251  1.1  christos 	Add POSIX-required formats %a and %A.
    252  1.1  christos 
    253  1.1  christos 	* run.c (format): Check for %a support in C library. If there,
    254  1.1  christos 	allow %a and %A as valid formats.
    255  1.1  christos 	* TODO: Updated.
    256  1.1  christos 	* bugs-fixed/README: Updated.
    257  1.1  christos 	* bugs-fixed/a-format.awk, bugs-fixed/a-format.bad,
    258  1.1  christos 	bugs-fixed/a-format.ok: New files.
    259  1.1  christos 
    260  1.1  christos 2018-05-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    261  1.1  christos 
    262  1.1  christos 	* FIXES: Restored a line from a much earlier version that
    263  1.1  christos 	apparently got lost when the dates were reordered.
    264  1.1  christos 	* TODO: Updated.
    265  1.1  christos 
    266  1.1  christos 2018-05-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    267  1.1  christos 
    268  1.1  christos 	* README.md: New file.
    269  1.1  christos 
    270  1.1  christos 2018-05-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    271  1.1  christos 
    272  1.1  christos 	* regdir/echo.c, regdir/time.c: Minor fixes to compile without
    273  1.1  christos 	warning on current GCC / Linux.
    274  1.1  christos 
    275  1.1  christos 2018-05-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    276  1.1  christos 
    277  1.1  christos 	* TODO: New file.
    278  1.1  christos 
    279  1.1  christos 2018-05-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    280  1.1  christos 
    281  1.1  christos 	* makefile (gitadd, gitpush): Remove these targets. They
    282  1.1  christos 	should not be automated and were incorrect for things that
    283  1.1  christos 	would be done regularly.
    284  1.1  christos 
    285  1.1  christos 2018-05-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    286  1.1  christos 
    287  1.1  christos 	Fix nawk so that [[:blank:]] only matches space and tab instead
    288  1.1  christos 	of any whitespace character, originally made May 10, 2018.
    289  1.1  christos 	See bugs-fixed/space.awk.
    290  1.1  christos 
    291  1.1  christos 	This appears to have been a thinko on Brian's part.
    292  1.1  christos 
    293  1.1  christos 	* b.c (charclasses): Use xisblank() function for [[:blank:]].
    294  1.1  christos 	* bugs-fixed/README: Updated.
    295  1.1  christos 	* bugs-fixed/space.awk, bugs-fixed/space.bad,
    296  1.1  christos 	bugs-fixed/space.ok: New files.
    297  1.1  christos 
    298  1.1  christos 2018-05-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    299  1.1  christos 
    300  1.1  christos 	* .gitignore: New file.
    301  1.1  christos 
    302  1.1  christos 2018-05-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    303  1.1  christos 
    304  1.1  christos 	Fix nawk to provide reasonable exit status for system(),
    305  1.1  christos 	a la gawk, originally made March 12, 2016. See
    306  1.1  christos 	bugs-fixed/system-status.awk.
    307  1.1  christos 
    308  1.1  christos 	* run.c (bltin): For FSYSTEM, use the macros defined for wait(2)
    309  1.1  christos 	to produce a reasonable exit value, instead of doing a floating-point
    310  1.1  christos 	division by 256.
    311  1.1  christos 	* awk.1: Document the return status values.
    312  1.1  christos 	* bugs-fixed/README: Updated.
    313  1.1  christos 	* bugs-fixed/system-status.awk, bugs-fixed/system-status.bad,
    314  1.1  christos 	bugs-fixed/system-status.ok: New files.
    315  1.1  christos 
    316  1.1  christos 2018-05-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    317  1.1  christos 
    318  1.1  christos 	Bug fix with respect to rebuilding a record, originally
    319  1.1  christos 	made August 19, 2014. See bugs-fixed/ofs-rebuild.awk.
    320  1.1  christos 
    321  1.1  christos 	* awk.h (saveOFS, saveOFSlen): Declare new variables.
    322  1.1  christos 	* lib.c (recbld): Use them when rebuilding the record.
    323  1.1  christos 	* run.c (saveOFS, saveOFSlen): Define new variables.
    324  1.1  christos 	(save_old_OFS): New function to save OFS aside.
    325  1.1  christos 	* tran.c (syminit): Initialize saveOFS and saveOFSlen.
    326  1.1  christos 	(setsval): If setting a field, call save_old_OFS().
    327  1.1  christos 	* bugs-fixed/README, bugs-fixed/ofs-rebuild.awk,
    328  1.1  christos 	bugs-fixed/ofs-rebuild.bad, bugs-fixed/ofs-rebuild.ok: New files.
    329  1.1  christos 
    330  1.1  christos 2018-05-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    331  1.1  christos 
    332  1.1  christos 	* makefile (YACC): Use bison.
    333  1.1  christos 
    334  1.1  christos 2018-05-22         Arnold D. Robbins     <arnold (a] skeeve.com>
    335  1.1  christos 
    336  1.1  christos 	* ChangeLog: Created.
    337  1.1  christos 	* regdir: Created. Based on contents of awktest.a.
    338  1.1  christos 	* .gitattributes: Created, to preserve CR LF in regdir/t.crlf.
    339  1.1  christos 	* awktest.a: Removed.
    340  1.1  christos 	* regdir/T.gawk, regdir/T.latin1: Updated from awktest.tar.
    341  1.1  christos 	* awktest.tar: Removed.
    342