The AWK 23-Oct-2007 release includes fixes for FreeBSD PR's bin/104795

and bin/100443.
This commit is contained in:
David E. O'Brien 2007-10-25 12:43:22 +00:00
parent 168aca5df6
commit 149d554ac8
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=172962
3 changed files with 1 additions and 50 deletions

View File

@ -29,7 +29,7 @@ CLEANFILES+= nawk.1
nawk.1: awk.1
cat ${.ALLSRC} > ${.TARGET}
.for f in b.c lib.c main.c run.c tran.c
.for f in b.c main.c run.c
${f}: ${AWKSRC}/${f} ${.CURDIR}/${f}.diff
patch -s -b .orig -o ${.TARGET} < ${.CURDIR}/${f}.diff ${AWKSRC}/${f}
CLEANFILES+= ${f}

View File

@ -1,27 +0,0 @@
$FreeBSD$
Index: lib.c
===================================================================
RCS file: /home/ncvs/src/contrib/one-true-awk/lib.c,v
retrieving revision 1.1.1.5
diff -u -p -u -r1.1.1.5 lib.c
--- lib.c 5 Jun 2007 15:33:51 -0000 1.1.1.5
+++ lib.c 8 Jun 2007 04:14:51 -0000
@@ -40,7 +40,7 @@ char *fields;
int fieldssize = RECSIZE;
Cell **fldtab; /* pointers to Cells */
-char inputFS[10] = " ";
+char inputFS[100] = " ";
#define MAXFLD 2
int nfields = MAXFLD; /* last allocated slot for $i */
@@ -58,7 +58,7 @@ static Cell dollar1 = { OCELL, CFLD, NUL
void recinit(unsigned int n)
{
if ( (record = (char *) malloc(n)) == NULL
- || (fields = (char *) malloc(n)) == NULL
+ || (fields = (char *) malloc(n+1)) == NULL
|| (fldtab = (Cell **) malloc((nfields+1) * sizeof(Cell *))) == NULL
|| (fldtab[0] = (Cell *) malloc(sizeof(Cell))) == NULL )
FATAL("out of space for $0 and fields");

View File

@ -1,22 +0,0 @@
$FreeBSD$
Index: tran.c
===================================================================
RCS file: /home/ncvs/src/contrib/one-true-awk/tran.c,v
retrieving revision 1.1.1.4
diff -u -p -r1.1.1.4 tran.c
--- tran.c 16 May 2005 19:11:35 -0000 1.1.1.4
+++ tran.c 25 Oct 2006 20:56:18 -0000
@@ -332,10 +332,10 @@ char *setsval(Cell *vp, const char *s) /
donerec = 1;
}
t = tostring(s); /* in case it's self-assign */
- vp->tval &= ~NUM;
- vp->tval |= STR;
if (freeable(vp))
xfree(vp->sval);
+ vp->tval &= ~NUM;
+ vp->tval |= STR;
vp->tval &= ~DONTFREE;
dprintf( ("setsval %p: %s = \"%s (%p) \", t=%o r,f=%d,%d\n",
vp, NN(vp->nval), t,t, vp->tval, donerec, donefld) );