Date: Fri, 30 Apr 2010 04:04:18 GMT From: Pedro Giffuni <giffunip@tutopia.com> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/146172: Update lang/nawk to 20100209 Message-ID: <201004300404.o3U44IO6040113@www.freebsd.org> Resent-Message-ID: <201004300410.o3U4A2oj041848@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 146172 >Category: ports >Synopsis: Update lang/nawk to 20100209 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Fri Apr 30 04:10:02 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Pedro Giffuni >Release: 8.0-Release >Organization: >Environment: FreeBSD mogwai.giffuni.net 8.0-RELEASE FreeBSD 8.0-RELEASE #13: Sat Jan 9 20:39:47 UTC 2010 pedro@mogwai.giffuni.net:/usr/src/sys/i386/compile/GENERIC i386 >Description: - Update to 20100209: minor change according to FIXES: i give up. replaced isblank with isspace in b.c; there are no consistent header files. - Remove calloc, snprintf patches, they were never considered important upstream. - Old patches from OpenBSD to extend awk with bitwise operations (based on gawk). >How-To-Repeat: >Fix: diff -ruN nawk.orig/Makefile nawk/Makefile --- nawk.orig/Makefile 2010-04-29 22:26:35.000000000 +0000 +++ nawk/Makefile 2010-04-29 23:02:42.000000000 +0000 @@ -7,7 +7,7 @@ # PORTNAME= nawk -PORTVERSION= 20091126 +PORTVERSION= 20100209 CATEGORIES= lang MASTER_SITES= http://www.cs.princeton.edu/~bwk/btl.mirror/ DISTNAME= awk diff -ruN nawk.orig/distinfo nawk/distinfo --- nawk.orig/distinfo 2010-04-29 22:26:35.000000000 +0000 +++ nawk/distinfo 2010-04-29 22:28:26.000000000 +0000 @@ -1,3 +1,3 @@ -MD5 (nawk/awk.tar.gz) = ec8545e7c732e4402e963c70ba766a5b -SHA256 (nawk/awk.tar.gz) = 4dbf070864f8ea626ef2b24b2bca6efc8fb372cf6d96fdcf3926663a6e8d0099 -SIZE (nawk/awk.tar.gz) = 117853 +MD5 (nawk/awk.tar.gz) = 7e6c71ae36ec48ce1d9160f25174bf77 +SHA256 (nawk/awk.tar.gz) = d3b9c2df870d5dc48575fe5c8c5004c73e9ebf124710e83c0e6febdc0df104c1 +SIZE (nawk/awk.tar.gz) = 123234 diff -ruN nawk.orig/files/patch-awk.h nawk/files/patch-awk.h --- nawk.orig/files/patch-awk.h 1970-01-01 00:00:00.000000000 +0000 +++ nawk/files/patch-awk.h 2010-04-29 22:41:07.000000000 +0000 @@ -0,0 +1,15 @@ +--- awk.h.orig 2004/12/30 01:52:48 1.11 ++++ awk.h 2008/06/04 14:04:42 1.12 +@@ -127,6 +127,12 @@ + #define FTOUPPER 12 + #define FTOLOWER 13 + #define FFLUSH 14 ++#define FAND 15 ++#define FFOR 16 ++#define FXOR 17 ++#define FCOMPL 18 ++#define FLSHIFT 19 ++#define FRSHIFT 20 + + /* Node: parse tree is made of nodes, with Cell's at bottom */ + diff -ruN nawk.orig/files/patch-b.c nawk/files/patch-b.c --- nawk.orig/files/patch-b.c 2010-04-29 22:26:35.000000000 +0000 +++ nawk/files/patch-b.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ ---- b.c.orig 2007-03-31 15:56:18.000000000 -0500 -+++ b.c 2008-07-07 08:44:50.000000000 -0500 -@@ -84,8 +84,8 @@ - - if (setvec == 0) { /* first time through any RE */ - maxsetvec = MAXLIN; -- setvec = (int *) malloc(maxsetvec * sizeof(int)); -- tmpset = (int *) malloc(maxsetvec * sizeof(int)); -+ setvec = (int *) calloc(maxsetvec, sizeof(int)); -+ tmpset = (int *) calloc(maxsetvec, sizeof(int)); - if (setvec == 0 || tmpset == 0) - overflo("out of space initializing makedfa"); - } -@@ -137,7 +137,7 @@ - f->accept = poscnt-1; /* penter has computed number of positions in re */ - cfoll(f, p1); /* set up follow sets */ - freetr(p1); -- if ((f->posns[0] = (int *) calloc(1, *(f->re[0].lfollow)*sizeof(int))) == NULL) -+ if ((f->posns[0] = (int *) calloc(*(f->re[0].lfollow), sizeof(int))) == NULL) - overflo("out of space in makedfa"); - if ((f->posns[1] = (int *) calloc(1, sizeof(int))) == NULL) - overflo("out of space in makedfa"); -@@ -157,7 +157,7 @@ - f->reset = 0; - k = *(f->re[0].lfollow); - xfree(f->posns[2]); -- if ((f->posns[2] = (int *) calloc(1, (k+1)*sizeof(int))) == NULL) -+ if ((f->posns[2] = (int *) calloc(k+1, sizeof(int))) == NULL) - overflo("out of space in makeinit"); - for (i=0; i <= k; i++) { - (f->posns[2])[i] = (f->re[0].lfollow)[i]; -@@ -357,7 +357,7 @@ - setvec[i] = 0; - setcnt = 0; - follow(v); /* computes setvec and setcnt */ -- if ((p = (int *) calloc(1, (setcnt+1)*sizeof(int))) == NULL) -+ if ((p = (int *) calloc(setcnt+1, sizeof(int))) == NULL) - overflo("out of space building follow set"); - f->re[info(v)].lfollow = p; - *p = setcnt; -@@ -531,7 +531,7 @@ - for (i = 2; i <= f->curstat; i++) - xfree(f->posns[i]); - k = *f->posns[0]; -- if ((f->posns[2] = (int *) calloc(1, (k+1)*sizeof(int))) == NULL) -+ if ((f->posns[2] = (int *) calloc(k+1, sizeof(int))) == NULL) - overflo("out of space in pmatch"); - for (i = 0; i <= k; i++) - (f->posns[2])[i] = (f->posns[0])[i]; -@@ -588,7 +588,7 @@ - for (i = 2; i <= f->curstat; i++) - xfree(f->posns[i]); - k = *f->posns[0]; -- if ((f->posns[2] = (int *) calloc(1, (k+1)*sizeof(int))) == NULL) -+ if ((f->posns[2] = (int *) calloc(k+1, sizeof(int))) == NULL) - overflo("out of state space"); - for (i = 0; i <= k; i++) - (f->posns[2])[i] = (f->posns[0])[i]; -@@ -920,7 +920,7 @@ - for (i = 0; i < NCHARS; i++) - f->gototab[f->curstat][i] = 0; - xfree(f->posns[f->curstat]); -- if ((p = (int *) calloc(1, (setcnt+1)*sizeof(int))) == NULL) -+ if ((p = (int *) calloc(setcnt+1, sizeof(int))) == NULL) - overflo("out of space in cgoto"); - - f->posns[f->curstat] = p; diff -ruN nawk.orig/files/patch-lex.c nawk/files/patch-lex.c --- nawk.orig/files/patch-lex.c 1970-01-01 00:00:00.000000000 +0000 +++ nawk/files/patch-lex.c 2010-04-29 22:41:07.000000000 +0000 @@ -0,0 +1,39 @@ +--- lex.c.orig 2006/04/16 02:10:18 1.9 ++++ lex.c 2008/06/04 14:04:42 1.10 +@@ -48,9 +48,11 @@ + { "BEGIN", XBEGIN, XBEGIN }, + { "END", XEND, XEND }, + { "NF", VARNF, VARNF }, ++ { "and", FAND, BLTIN }, + { "atan2", FATAN, BLTIN }, + { "break", BREAK, BREAK }, + { "close", CLOSE, CLOSE }, ++ { "compl", FCOMPL, BLTIN }, + { "continue", CONTINUE, CONTINUE }, + { "cos", FCOS, BLTIN }, + { "delete", DELETE, DELETE }, +@@ -70,13 +72,16 @@ + { "int", FINT, BLTIN }, + { "length", FLENGTH, BLTIN }, + { "log", FLOG, BLTIN }, ++ { "lshift", FLSHIFT, BLTIN }, + { "match", MATCHFCN, MATCHFCN }, + { "next", NEXT, NEXT }, + { "nextfile", NEXTFILE, NEXTFILE }, ++ { "or", FFOR, BLTIN }, + { "print", PRINT, PRINT }, + { "printf", PRINTF, PRINTF }, + { "rand", FRAND, BLTIN }, + { "return", RETURN, RETURN }, ++ { "rshift", FRSHIFT, BLTIN }, + { "sin", FSIN, BLTIN }, + { "split", SPLIT, SPLIT }, + { "sprintf", SPRINTF, SPRINTF }, +@@ -88,6 +93,7 @@ + { "tolower", FTOLOWER, BLTIN }, + { "toupper", FTOUPPER, BLTIN }, + { "while", WHILE, WHILE }, ++ { "xor", FXOR, BLTIN }, + }; + + #define DEBUG diff -ruN nawk.orig/files/patch-lib.c nawk/files/patch-lib.c --- nawk.orig/files/patch-lib.c 2010-04-29 22:26:35.000000000 +0000 +++ nawk/files/patch-lib.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ ---- lib.c.orig 2007-10-22 18:17:52.000000000 -0500 -+++ lib.c 2008-07-07 09:38:58.000000000 -0500 -@@ -59,7 +59,7 @@ - { - if ( (record = (char *) malloc(n)) == NULL - || (fields = (char *) malloc(n+1)) == NULL -- || (fldtab = (Cell **) malloc((nfields+1) * sizeof(Cell *))) == NULL -+ || (fldtab = (Cell **) calloc((nfields+1), sizeof(Cell *))) == NULL - || (fldtab[0] = (Cell *) malloc(sizeof(Cell))) == NULL ) - FATAL("out of space for $0 and fields"); - *fldtab[0] = dollar0; -@@ -78,7 +78,7 @@ - if (fldtab[i] == NULL) - FATAL("out of space in makefields %d", i); - *fldtab[i] = dollar1; -- sprintf(temp, "%d", i); -+ snprintf(temp, sizeof temp, "%d", i); - fldtab[i]->nval = tostring(temp); - } - } -@@ -226,7 +226,7 @@ - char *s, temp[50]; - extern Array *ARGVtab; - -- sprintf(temp, "%d", n); -+ snprintf(temp, sizeof temp, "%d", n); - x = setsymtab(temp, "", 0.0, STR, ARGVtab); - s = getsval(x); - dprintf( ("getargv(%d) returns |%s|\n", n, s) ); diff -ruN nawk.orig/files/patch-proto.h nawk/files/patch-proto.h --- nawk.orig/files/patch-proto.h 1970-01-01 00:00:00.000000000 +0000 +++ nawk/files/patch-proto.h 2010-04-29 22:41:07.000000000 +0000 @@ -0,0 +1,10 @@ +--- proto.h.orig 2003/10/26 11:34:23 1.5 ++++ proto.h 2007/11/06 23:07:52 1.5.22.1 +@@ -112,6 +112,7 @@ extern double getfval(Cell *); + extern char *getsval(Cell *); + extern char *getpssval(Cell *); /* for print */ + extern char *tostring(const char *); ++extern char *tostringN(const char *, size_t n); + extern char *qstring(const char *, int); + + extern void recinit(unsigned int); diff -ruN nawk.orig/files/patch-run.c nawk/files/patch-run.c --- nawk.orig/files/patch-run.c 2010-04-29 22:26:35.000000000 +0000 +++ nawk/files/patch-run.c 2010-04-29 22:51:38.000000000 +0000 @@ -1,6 +1,69 @@ ---- run.c.orig Mon Dec 6 06:44:42 2004 -+++ run.c Sat Feb 26 18:01:46 2005 -@@ -1507,15 +1507,15 @@ +--- run.c.orig 2009-11-26 23:59:16.000000000 +0000 ++++ run.c 2010-04-29 22:50:49.000000000 +0000 +@@ -1504,20 +1504,78 @@ + nextarg = nextarg->nnext; + } + break; ++ case FCOMPL: ++ u = ~((int)getfval(x)); ++ break; ++ case FAND: ++ if (nextarg == 0) { ++ WARNING("and requires two arguments; returning 0"); ++ u = 0; ++ break; ++ } ++ y = execute(a[1]->nnext); ++ u = ((int)getfval(x)) & ((int)getfval(y)); ++ tempfree(y); ++ nextarg = nextarg->nnext; ++ break; ++ case FFOR: ++ if (nextarg == 0) { ++ WARNING("or requires two arguments; returning 0"); ++ u = 0; ++ break; ++ } ++ y = execute(a[1]->nnext); ++ u = ((int)getfval(x)) | ((int)getfval(y)); ++ tempfree(y); ++ nextarg = nextarg->nnext; ++ break; ++ case FXOR: ++ if (nextarg == 0) { ++ WARNING("or requires two arguments; returning 0"); ++ u = 0; ++ break; ++ } ++ y = execute(a[1]->nnext); ++ u = ((int)getfval(x)) ^ ((int)getfval(y)); ++ tempfree(y); ++ nextarg = nextarg->nnext; ++ break; ++ case FLSHIFT: ++ if (nextarg == 0) { ++ WARNING("or requires two arguments; returning 0"); ++ u = 0; ++ break; ++ } ++ y = execute(a[1]->nnext); ++ u = ((int)getfval(x)) << ((int)getfval(y)); ++ tempfree(y); ++ nextarg = nextarg->nnext; ++ break; ++ case FRSHIFT: ++ if (nextarg == 0) { ++ WARNING("or requires two arguments; returning 0"); ++ u = 0; ++ break; ++ } ++ y = execute(a[1]->nnext); ++ u = ((int)getfval(x)) >> ((int)getfval(y)); ++ tempfree(y); ++ nextarg = nextarg->nnext; ++ break; + case FSYSTEM: + fflush(stdout); /* in case something is buffered already */ u = (Awkfloat) system(getsval(x)) / 256; /* 256 is unix-dep */ break; case FRAND: >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004300404.o3U44IO6040113>