Vendor import of bwk's 26-Nov-2009 release.
This commit is contained in:
parent
2f77d60407
commit
d9859a0e4b
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/vendor/one-true-awk/dist/; revision=201945 svn path=/vendor/one-true-awk/20091126/; revision=201946; tag=vendor/one-true-awk/20091126
17
FIXES
17
FIXES
@ -25,6 +25,23 @@ THIS SOFTWARE.
|
||||
This file lists all bug fixes, changes, etc., made since the AWK book
|
||||
was sent to the printers in August, 1987.
|
||||
|
||||
Nov 26, 2009:
|
||||
fixed a long-standing issue with when FS takes effect. a
|
||||
change to FS is now noticed immediately for subsequent splits.
|
||||
|
||||
changed the name getline() to awkgetline() to avoid yet another
|
||||
name conflict somewhere.
|
||||
|
||||
Feb 11, 2009:
|
||||
temporarily for now defined HAS_ISBLANK, since that seems to
|
||||
be the best way through the thicket. isblank arrived in C99,
|
||||
but seems to be arriving at different systems at different
|
||||
times.
|
||||
|
||||
Oct 8, 2008:
|
||||
fixed typo in b.c that set tmpvec wrongly. no one had ever
|
||||
run into the problem, apparently. thanks to alistair crooks.
|
||||
|
||||
Oct 23, 2007:
|
||||
minor fix in lib.c: increase inputFS to 100, change malloc
|
||||
for fields to n+1.
|
||||
|
3
b.c
3
b.c
@ -731,6 +731,7 @@ Node *unary(Node *np)
|
||||
* to nelson beebe for the suggestion; let's see if it works everywhere.
|
||||
*/
|
||||
|
||||
/* #define HAS_ISBLANK */
|
||||
#ifndef HAS_ISBLANK
|
||||
|
||||
int (isblank)(int c)
|
||||
@ -876,7 +877,7 @@ int cgoto(fa *f, int s, int c)
|
||||
if (q[j] >= maxsetvec) {
|
||||
maxsetvec *= 4;
|
||||
setvec = (int *) realloc(setvec, maxsetvec * sizeof(int));
|
||||
tmpset = (int *) realloc(setvec, maxsetvec * sizeof(int));
|
||||
tmpset = (int *) realloc(tmpset, maxsetvec * sizeof(int));
|
||||
if (setvec == 0 || tmpset == 0)
|
||||
overflo("cgoto overflow");
|
||||
}
|
||||
|
1
lib.c
1
lib.c
@ -274,6 +274,7 @@ void fldbld(void) /* create fields from current record */
|
||||
}
|
||||
fr = fields;
|
||||
i = 0; /* number of fields accumulated here */
|
||||
strcpy(inputFS, *FS);
|
||||
if (strlen(inputFS) > 1) { /* it's a regular expression */
|
||||
i = refldbld(r, inputFS);
|
||||
} else if ((sep = *inputFS) == ' ') { /* default whitespace */
|
||||
|
2
main.c
2
main.c
@ -22,7 +22,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
||||
THIS SOFTWARE.
|
||||
****************************************************************/
|
||||
|
||||
const char *version = "version 20070501";
|
||||
const char *version = "version 20091126";
|
||||
|
||||
#define DEBUG
|
||||
#include <stdio.h>
|
||||
|
1
makefile
1
makefile
@ -31,7 +31,6 @@ CC = gcc -fprofile-arcs -ftest-coverage # then gcov f1.c; cat f1.c.gcov
|
||||
CC = gcc -Wall -g
|
||||
CC = cc
|
||||
CC = gcc -O4
|
||||
CC = gcc -Wall -g
|
||||
|
||||
|
||||
YACC = bison -y
|
||||
|
@ -102,7 +102,7 @@ struct xx
|
||||
{ CALL, "call", "call" },
|
||||
{ ARG, "arg", "arg" },
|
||||
{ VARNF, "getnf", "NF" },
|
||||
{ GETLINE, "getline", "getline" },
|
||||
{ GETLINE, "awkgetline", "getline" },
|
||||
{ 0, "", "" },
|
||||
};
|
||||
|
||||
|
@ -180,7 +180,7 @@ Cell *(*proctab[93])(Node **, int) = {
|
||||
nullproc, /* NUMBER */
|
||||
nullproc, /* STRING */
|
||||
nullproc, /* REGEXPR */
|
||||
getline, /* GETLINE */
|
||||
awkgetline, /* GETLINE */
|
||||
substr, /* SUBSTR */
|
||||
split, /* SPLIT */
|
||||
jump, /* RETURN */
|
||||
|
2
proto.h
2
proto.h
@ -149,7 +149,7 @@ extern Cell *call(Node **, int);
|
||||
extern Cell *copycell(Cell *);
|
||||
extern Cell *arg(Node **, int);
|
||||
extern Cell *jump(Node **, int);
|
||||
extern Cell *getline(Node **, int);
|
||||
extern Cell *awkgetline(Node **, int);
|
||||
extern Cell *getnf(Node **, int);
|
||||
extern Cell *array(Node **, int);
|
||||
extern Cell *awkdelete(Node **, int);
|
||||
|
4
run.c
4
run.c
@ -388,7 +388,7 @@ Cell *jump(Node **a, int n) /* break, continue, next, nextfile, return */
|
||||
return 0; /* not reached */
|
||||
}
|
||||
|
||||
Cell *getline(Node **a, int n) /* get next line from specific input */
|
||||
Cell *awkgetline(Node **a, int n) /* get next line from specific input */
|
||||
{ /* a[0] is variable, a[1] is operator, a[2] is filename */
|
||||
Cell *r, *x;
|
||||
extern Cell **fldtab;
|
||||
@ -1159,11 +1159,11 @@ Cell *cat(Node **a, int q) /* a[0] cat a[1] */
|
||||
x->sval, y->sval);
|
||||
strcpy(s, x->sval);
|
||||
strcpy(s+n1, y->sval);
|
||||
tempfree(x);
|
||||
tempfree(y);
|
||||
z = gettemp();
|
||||
z->sval = s;
|
||||
z->tval = STR;
|
||||
tempfree(x);
|
||||
return(z);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user