summaryrefslogtreecommitdiff
path: root/contrib/one-true-awk
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@FreeBSD.org>2010-01-09 23:19:01 +0000
committerRuslan Ermilov <ru@FreeBSD.org>2010-01-09 23:19:01 +0000
commit91217c1c70f6a0d73a2de3ba8d55b0fe1327a868 (patch)
tree18d3f95433c9b0fe4842e4b5896976cc6aea9ec3 /contrib/one-true-awk
parent716f79c09309a464aeeed2a6573344bcfe3e024a (diff)
parentd9859a0e4b8744c01f13cf391ee5cfbf57c5e818 (diff)
downloadsrc-test-91217c1c70f6a0d73a2de3ba8d55b0fe1327a868.tar.gz
src-test-91217c1c70f6a0d73a2de3ba8d55b0fe1327a868.zip
Update to a 26-Nov-2009 release.
Notes
Notes: svn path=/head/; revision=201951
Diffstat (limited to 'contrib/one-true-awk')
-rw-r--r--contrib/one-true-awk/FIXES17
-rw-r--r--contrib/one-true-awk/b.c3
-rw-r--r--contrib/one-true-awk/lib.c1
-rw-r--r--contrib/one-true-awk/main.c2
-rw-r--r--contrib/one-true-awk/makefile1
-rw-r--r--contrib/one-true-awk/maketab.c2
-rw-r--r--contrib/one-true-awk/proctab.c2
-rw-r--r--contrib/one-true-awk/proto.h2
-rw-r--r--contrib/one-true-awk/run.c4
9 files changed, 26 insertions, 8 deletions
diff --git a/contrib/one-true-awk/FIXES b/contrib/one-true-awk/FIXES
index 2f39d4827c101..bda79768606a9 100644
--- a/contrib/one-true-awk/FIXES
+++ b/contrib/one-true-awk/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.
diff --git a/contrib/one-true-awk/b.c b/contrib/one-true-awk/b.c
index 0d91f23f548c3..4c6d61be90825 100644
--- a/contrib/one-true-awk/b.c
+++ b/contrib/one-true-awk/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");
}
diff --git a/contrib/one-true-awk/lib.c b/contrib/one-true-awk/lib.c
index c9cc5d563b16b..017b37670d079 100644
--- a/contrib/one-true-awk/lib.c
+++ b/contrib/one-true-awk/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 */
diff --git a/contrib/one-true-awk/main.c b/contrib/one-true-awk/main.c
index e1ed1773e09b3..3bc25a579fec3 100644
--- a/contrib/one-true-awk/main.c
+++ b/contrib/one-true-awk/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>
diff --git a/contrib/one-true-awk/makefile b/contrib/one-true-awk/makefile
index a761a594d8947..9d3985be2d4c5 100644
--- a/contrib/one-true-awk/makefile
+++ b/contrib/one-true-awk/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
diff --git a/contrib/one-true-awk/maketab.c b/contrib/one-true-awk/maketab.c
index 1f78a9eb9220e..31acd7522da54 100644
--- a/contrib/one-true-awk/maketab.c
+++ b/contrib/one-true-awk/maketab.c
@@ -102,7 +102,7 @@ struct xx
{ CALL, "call", "call" },
{ ARG, "arg", "arg" },
{ VARNF, "getnf", "NF" },
- { GETLINE, "getline", "getline" },
+ { GETLINE, "awkgetline", "getline" },
{ 0, "", "" },
};
diff --git a/contrib/one-true-awk/proctab.c b/contrib/one-true-awk/proctab.c
index 401dec635d900..e4eddfda92d16 100644
--- a/contrib/one-true-awk/proctab.c
+++ b/contrib/one-true-awk/proctab.c
@@ -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 */
diff --git a/contrib/one-true-awk/proto.h b/contrib/one-true-awk/proto.h
index adda07108c8ca..0a68b3a813f8a 100644
--- a/contrib/one-true-awk/proto.h
+++ b/contrib/one-true-awk/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);
diff --git a/contrib/one-true-awk/run.c b/contrib/one-true-awk/run.c
index a9e269cc7155a..72fc4d0f4172f 100644
--- a/contrib/one-true-awk/run.c
+++ b/contrib/one-true-awk/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);
}