aboutsummaryrefslogtreecommitdiff
path: root/textproc/2bsd-diff
diff options
context:
space:
mode:
authorFernando ApesteguĂ­a <fernape@FreeBSD.org>2019-01-07 11:16:54 +0000
committerFernando ApesteguĂ­a <fernape@FreeBSD.org>2019-01-07 11:16:54 +0000
commit0b62d14c50a7723838a4df23c58f342dfcd3a37c (patch)
treedb53bf47d5c23492b4fc08cebb95b7cb75d19e56 /textproc/2bsd-diff
parentb04bb8cf9ce862a0f7516a8e9d7a60d75fe2cd13 (diff)
downloadports-0b62d14c50a7723838a4df23c58f342dfcd3a37c.tar.gz
ports-0b62d14c50a7723838a4df23c58f342dfcd3a37c.zip
textproc/2bsd-diff: fix breakage on current
On FreeBSD 13 - current, the build failed with: cc: error: unknown argument: '-i' PR: 234362 Submitted by: risner@stdio.com (maintainer)
Notes
Notes: svn path=/head/; revision=489572
Diffstat (limited to 'textproc/2bsd-diff')
-rw-r--r--textproc/2bsd-diff/Makefile4
-rw-r--r--textproc/2bsd-diff/files/patch-Makefile16
-rw-r--r--textproc/2bsd-diff/files/patch-diff.c49
-rw-r--r--textproc/2bsd-diff/files/patch-diff.h27
-rw-r--r--textproc/2bsd-diff/files/patch-diffdir.c115
-rw-r--r--textproc/2bsd-diff/files/patch-diffh.c184
-rw-r--r--textproc/2bsd-diff/files/patch-diffreg.c285
-rw-r--r--textproc/2bsd-diff/pkg-descr10
8 files changed, 662 insertions, 28 deletions
diff --git a/textproc/2bsd-diff/Makefile b/textproc/2bsd-diff/Makefile
index 21ee75cb6dee..37cb5b08c95c 100644
--- a/textproc/2bsd-diff/Makefile
+++ b/textproc/2bsd-diff/Makefile
@@ -3,10 +3,10 @@
PORTNAME= diff
PORTVERSION= 2.11
-PORTREVISION= 0
+PORTREVISION= 1
CATEGORIES= textproc
MASTER_SITES= http://www.tribug.org/pub/tuhs/PDP-11/Distributions/ucb/2.11BSD/ \
- http://www.stdio.com/2.11BSD/
+ http://www.d20hobbies.com/2.11BSD/
PKGNAMEPREFIX= 2bsd-
DISTNAME= file8
diff --git a/textproc/2bsd-diff/files/patch-Makefile b/textproc/2bsd-diff/files/patch-Makefile
index c483bcbf9a09..5654c7da4c01 100644
--- a/textproc/2bsd-diff/files/patch-Makefile
+++ b/textproc/2bsd-diff/files/patch-Makefile
@@ -1,20 +1,26 @@
---- ./Makefile.orig 1996-10-22 04:29:46.000000000 +0000
-+++ ./Makefile 2014-02-17 13:43:18.000000000 +0000
-@@ -1,9 +1,9 @@
+--- Makefile.orig 1996-10-22 04:29:46 UTC
++++ Makefile
+@@ -1,10 +1,14 @@
# @(#)Makefile 4.1.1 1996/10/21
#
-DIFF= /bin/diff
-DIFFH= /usr/libexec/diffh
-PR= /bin/pr
-CFLAGS= -O -DDIFF='"${DIFF}"' -DDIFFH='"${DIFFH}"' -DPR='"${PR}"'
+-SEPFLAG=-i
+DIFF= ${PREFIX}/bin/2diff
+DIFFH= ${PREFIX}/libexec/2diffh
+PR= /usr/bin/pr
+CFLAGS+=-DDIFF='"${DIFF}"' -DDIFFH='"${DIFFH}"' -DPR='"${PR}"'
- SEPFLAG=-i
++# SEPFLAG should be:
++# not on a PDP-11: SEPFLAG =
++# PDP-11 with separate I&D: SEPFLAG = -i
++# PDP-11 without separate I&D: SEPFLAG = -n
++SEPFLAG=
DESTDIR=
-@@ -14,14 +14,15 @@
+ SRCS= diff.c diffdir.c diffreg.c
+@@ -14,14 +18,15 @@ OBJS= diff.o diffdir.o diffreg.o
all: diff diffh
diff: ${OBJS}
diff --git a/textproc/2bsd-diff/files/patch-diff.c b/textproc/2bsd-diff/files/patch-diff.c
index 6be748081b3d..75101455b3f4 100644
--- a/textproc/2bsd-diff/files/patch-diff.c
+++ b/textproc/2bsd-diff/files/patch-diff.c
@@ -1,6 +1,31 @@
---- diff.c.orig Wed Nov 13 05:31:26 1991
-+++ diff.c Wed Mar 19 01:31:23 2003
-@@ -176,9 +176,10 @@
+--- diff.c.orig 1991-11-12 20:31:26 UTC
++++ diff.c
+@@ -11,7 +11,7 @@ char diff[] = DIFF;
+ char diffh[] = DIFFH;
+ char pr[] = PR;
+
+-main(argc, argv)
++int main(argc, argv)
+ int argc;
+ char **argv;
+ {
+@@ -162,23 +162,24 @@ savestr(cp)
+ return (dp);
+ }
+
+-min(a,b)
++int min(a,b)
+ int a,b;
+ {
+
+ return (a < b ? a : b);
+ }
+
+-max(a,b)
++int max(a,b)
+ int a,b;
+ {
+
return (a > b ? a : b);
}
@@ -12,7 +37,15 @@
unlink(tempfile);
exit(status);
}
-@@ -198,7 +199,6 @@
+@@ -191,6 +192,7 @@ talloc(n)
+ if ((p = malloc((unsigned)n)) != NULL)
+ return(p);
+ noroom();
++ return NULL;
+ }
+
+ char *
+@@ -198,14 +200,13 @@ ralloc(p,n)
char *p;
{
register char *q;
@@ -20,3 +53,11 @@
if ((q = realloc(p, (unsigned)n)) == NULL)
noroom();
+ return(q);
+ }
+
+-noroom()
++void noroom()
+ {
+ fprintf(stderr, "diff: files too big, try -h\n");
+ done();
diff --git a/textproc/2bsd-diff/files/patch-diff.h b/textproc/2bsd-diff/files/patch-diff.h
index 31670f3f50f9..645ca36f631d 100644
--- a/textproc/2bsd-diff/files/patch-diff.h
+++ b/textproc/2bsd-diff/files/patch-diff.h
@@ -1,6 +1,6 @@
---- diff.h.orig Thu Aug 29 06:44:35 1985
-+++ diff.h Wed Mar 19 01:35:49 2003
-@@ -5,10 +5,11 @@
+--- diff.h.orig 1985-08-28 21:44:35 UTC
++++ diff.h
+@@ -5,11 +5,17 @@
*/
#include <stdio.h>
@@ -11,9 +11,15 @@
-#include <sys/dir.h>
+#include <dirent.h>
#include <signal.h>
++#include <string.h>
++#include <unistd.h>
++#include <fcntl.h>
++#include <sys/wait.h>
++#include <arpa/inet.h>
/*
-@@ -61,7 +62,7 @@
+ * Output format options
+@@ -61,7 +67,7 @@ int context; /* lines of context to be printed */
*/
int status;
int anychange;
@@ -22,7 +28,7 @@
/*
* Variables for diffdir.
-@@ -77,9 +78,9 @@
+@@ -77,9 +83,20 @@ char **diffargv; /* option list to pass to recursive
char *file1, *file2, *efile1, *efile2;
struct stat stb1, stb2;
@@ -35,3 +41,14 @@
+sig_t done();
extern char diffh[], diff[], pr[];
++
++/* declarations */
++void diffdir(char **argv);
++void diffreg();
++void noroom();
++void setfile(char **fpp, char **epp, char *file);
++int useless(register char *cp);
++int min(int, int);
++int max(int, int);
++void prune();
++int skipline(int);
diff --git a/textproc/2bsd-diff/files/patch-diffdir.c b/textproc/2bsd-diff/files/patch-diffdir.c
index 04bffd24e374..f5e4e259ba63 100644
--- a/textproc/2bsd-diff/files/patch-diffdir.c
+++ b/textproc/2bsd-diff/files/patch-diffdir.c
@@ -1,6 +1,61 @@
---- diffdir.c.orig Wed Nov 13 05:31:29 1991
-+++ diffdir.c Wed Mar 19 01:36:38 2003
-@@ -172,7 +172,7 @@
+--- diffdir.c.orig 1991-11-12 20:31:29 UTC
++++ diffdir.c
+@@ -24,7 +24,15 @@ struct dir *setupdir();
+ int header;
+ char title[2*BUFSIZ], *etitle;
+
+-diffdir(argv)
++/* declarations */
++void only(struct dir *, int);
++void compare(register struct dir *);
++void scanpr(register struct dir *, int, char *, char *, char *, char *, char *);
++void calldiff(char *);
++int ascii(int);
++int entcmp(const void *, const void *);
++
++void diffdir(argv)
+ char **argv;
+ {
+ register struct dir *d1, *d2;
+@@ -112,7 +120,7 @@ diffdir(argv)
+ }
+ }
+
+-setfile(fpp, epp, file)
++void setfile(fpp, epp, file)
+ char **fpp, **epp;
+ char *file;
+ {
+@@ -130,7 +138,7 @@ setfile(fpp, epp, file)
+ *epp = cp;
+ }
+
+-scanpr(dp, test, title, file1, efile1, file2, efile2)
++void scanpr(dp, test, title, file1, efile1, file2, efile2)
+ register struct dir *dp;
+ int test;
+ char *title, *file1, *efile1, *file2, *efile2;
+@@ -155,24 +163,23 @@ scanpr(dp, test, title, file1, efile1, file2, efile2)
+ }
+ }
+
+-only(dp, which)
++void only(dp, which)
+ struct dir *dp;
+ int which;
+ {
+ char *file = which == 1 ? file1 : file2;
+ char *efile = which == 1 ? efile1 : efile2;
+
+- printf("Only in %.*s: %s\n", efile - file - 1, file, dp->d_entry);
++ printf("Only in %.*s: %s\n", (int)(efile - file - 1),
++ file, dp->d_entry);
+ }
+
+-int entcmp();
+-
+ struct dir *
+ setupdir(cp)
char *cp;
{
register struct dir *dp = 0, *ep;
@@ -9,3 +64,57 @@
register int nitems, n;
DIR *dirp;
+@@ -196,7 +203,7 @@ setupdir(cp)
+ fprintf(stderr, "diff: ran out of memory\n");
+ done();
+ }
+- while (rp = readdir(dirp)) {
++ while ((rp = readdir(dirp))) {
+ ep = &dp[nitems++];
+ ep->d_reclen = rp->d_reclen;
+ ep->d_namlen = rp->d_namlen;
+@@ -225,13 +232,13 @@ setupdir(cp)
+ return (dp);
+ }
+
+-entcmp(d1, d2)
+- struct dir *d1, *d2;
++int entcmp(d1, d2)
++ const void *d1, *d2;
+ {
+- return (strcmp(d1->d_entry, d2->d_entry));
++ return strcmp(((struct dir *)d1)->d_entry, ((struct dir *)d2)->d_entry);
+ }
+
+-compare(dp)
++void compare(dp)
+ register struct dir *dp;
+ {
+ register int i, j;
+@@ -323,7 +330,7 @@ closem:
+
+ char *prargs[] = { "pr", "-h", 0, "-f", 0, 0 };
+
+-calldiff(wantpr)
++void calldiff(wantpr)
+ char *wantpr;
+ {
+ int pid, status, status2, pv[2];
+@@ -382,7 +389,7 @@ calldiff(wantpr)
+
+ #include <a.out.h>
+
+-ascii(f)
++int ascii(f)
+ int f;
+ {
+ char buf[BUFSIZ];
+@@ -407,7 +414,7 @@ ascii(f)
+ /*
+ * THIS IS CRUDE.
+ */
+-useless(cp)
++int useless(cp)
+ register char *cp;
+ {
+
diff --git a/textproc/2bsd-diff/files/patch-diffh.c b/textproc/2bsd-diff/files/patch-diffh.c
new file mode 100644
index 000000000000..ca5edcc8864d
--- /dev/null
+++ b/textproc/2bsd-diff/files/patch-diffh.c
@@ -0,0 +1,184 @@
+--- diffh.c.orig 1991-11-12 20:31:33 UTC
++++ diffh.c
+@@ -6,6 +6,7 @@ static char sccsid[] = "@(#)diffh.c 4.4 11/27/85";
+ #include <ctype.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <stdlib.h>
+
+ #define C 3
+ #define RANGE 30
+@@ -20,13 +21,24 @@ int bflag;
+ int debug = 0;
+ FILE *file[2];
+
++/* declarations */
++void error(char *, char *);
++char cmp(char *, char *);
++void range(long, int);
++void change(long, int, long, int, char *);
++int output(int, int);
++void progerr(char *);
++int hardsynch();
++int easysynch();
++void movstr(char *, char *t);
++void clrl(int, long);
++
+ /* return pointer to line n of file f*/
+ char *getl(f,n)
+ long n;
+ {
+ register char *t;
+- char *malloc();
+- register delta, nt;
++ register int delta, nt;
+ again:
+ delta = n - lineno[f];
+ nt = ntext[f];
+@@ -43,11 +55,12 @@ again:
+ t = text[f][nt];
+ if(t==0) {
+ t = text[f][nt] = malloc(LEN+1);
+- if(t==NULL)
++ if(t==NULL) {
+ if(hardsynch())
+ goto again;
+ else
+ progerr("5");
++ }
+ }
+ t = fgets(t,LEN,file[f]);
+ if(t!=NULL)
+@@ -56,10 +69,10 @@ again:
+ }
+
+ /*remove thru line n of file f from storage*/
+-clrl(f,n)
++void clrl(f,n)
+ long n;
+ {
+- register i,j;
++ register int i,j;
+ j = n-lineno[f]+1;
+ for(i=0;i+j<ntext[f];i++)
+ movstr(text[f][i+j],text[f][i]);
+@@ -67,14 +80,14 @@ long n;
+ ntext[f] -= j;
+ }
+
+-movstr(s,t)
++void movstr(s,t)
+ register char *s, *t;
+ {
+- while(*t++= *s++)
++ while((*t++= *s++))
+ continue;
+ }
+
+-main(argc,argv)
++int main(argc,argv)
+ char **argv;
+ {
+ char *s0,*s1;
+@@ -116,10 +129,10 @@ char **argv;
+ }
+
+ /* synch on C successive matches*/
+-easysynch()
++int easysynch()
+ {
+ int i,j;
+- register k,m;
++ register int k,m;
+ char *s0,*s1;
+ for(i=j=1;i<RANGE&&j<RANGE;i++,j++) {
+ s0 = getl(0,n0+i);
+@@ -148,9 +161,9 @@ cont2: ;
+ return(0);
+ }
+
+-output(a,b)
++int output(a,b)
+ {
+- register i;
++ register int i;
+ char *s;
+ if(a<0)
+ change(n0-1,0,n1,b,"a");
+@@ -179,7 +192,7 @@ output(a,b)
+ return(1);
+ }
+
+-change(a,b,c,d,s)
++void change(a,b,c,d,s)
+ long a,c;
+ char *s;
+ {
+@@ -189,7 +202,7 @@ char *s;
+ printf("\n");
+ }
+
+-range(a,b)
++void range(a,b)
+ long a;
+ {
+ if(b==INF)
+@@ -200,7 +213,7 @@ long a;
+ printf("%ld,%ld",a,a+b);
+ }
+
+-cmp(s,t)
++char cmp(s,t)
+ char *s,*t;
+ {
+ if(debug)
+@@ -224,20 +237,21 @@ char *f1,*f2;
+ FILE *f;
+ char b[100],*bptr,*eptr;
+ struct stat statbuf;
+- if(cmp(f1,"-")==0)
++ if(cmp(f1,"-")==0) {
+ if(cmp(f2,"-")==0)
+ error("can't do - -","");
+ else
+ return(stdin);
++ }
+ if(stat(f1,&statbuf)==-1)
+ error("can't access ",f1);
+ if((statbuf.st_mode&S_IFMT)==S_IFDIR) {
+- for(bptr=b;*bptr= *f1++;bptr++) ;
++ for(bptr=b;(*bptr= *f1++);bptr++) ;
+ *bptr++ = '/';
+ for(eptr=f2;*eptr;eptr++)
+ if(*eptr=='/'&&eptr[1]!=0&&eptr[1]!='/')
+ f2 = eptr+1;
+- while(*bptr++= *f2++) ;
++ while((*bptr++= *f2++)) ;
+ f1 = b;
+ }
+ f = fopen(f1,"r");
+@@ -247,13 +261,13 @@ char *f1,*f2;
+ }
+
+
+-progerr(s)
++void progerr(s)
+ char *s;
+ {
+ error("program error ",s);
+ }
+
+-error(s,t)
++void error(s,t)
+ char *s,*t;
+ {
+ fprintf(stderr,"diffh: %s%s\n",s,t);
+@@ -261,7 +275,7 @@ char *s,*t;
+ }
+
+ /*stub for resychronization beyond limits of text buf*/
+-hardsynch()
++int hardsynch()
+ {
+ change(n0,INF,n1,INF,"c");
+ printf("---change record omitted\n");
diff --git a/textproc/2bsd-diff/files/patch-diffreg.c b/textproc/2bsd-diff/files/patch-diffreg.c
index bfe0e069bb4a..bd16f63d2380 100644
--- a/textproc/2bsd-diff/files/patch-diffreg.c
+++ b/textproc/2bsd-diff/files/patch-diffreg.c
@@ -1,6 +1,41 @@
---- diffreg.c.orig Tue Jan 11 14:39:33 1994
-+++ diffreg.c Wed Mar 19 01:38:48 2003
-@@ -270,12 +270,12 @@
+--- diffreg.c.orig 1994-01-11 05:39:33 UTC
++++ diffreg.c
+@@ -84,6 +84,25 @@ struct line {
+ int serial;
+ int value;
+ } *file[2], line;
++
++/* declarations */
++void equiv(struct line *, int, struct line *, int, int *);
++int asciifile(FILE *);
++void prepare(int, FILE *);
++void sort(struct line *, int);
++void unsort(struct line *, int, int *);
++void unravel(int);
++void check();
++void output();
++int stone(int *, int, int *, register int *);
++int readhash(FILE *);
++int newcand(int, int, int);
++int search(int *, int, int);
++void change(int, int, int, int);
++void dump_context_vec();
++void range(int, int, char *);
++void fetch(long *, int, int, FILE *, char *, int);
++
+ int len[2];
+ struct line *sfile[2]; /* shortened by pruning common prefix and suffix */
+ int slen[2];
+@@ -140,7 +159,7 @@ char cup2low[256] = {
+ 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff
+ };
+
+-diffreg()
++void diffreg()
+ {
+ register int i, j;
+ FILE *f1, *f2;
+@@ -270,12 +289,12 @@ copytemp()
char buf[BUFSIZ];
register int i, f;
@@ -19,3 +54,247 @@
if (f < 0) {
fprintf(stderr, "diff: ");
perror(tempfile);
+@@ -311,16 +330,16 @@ splice(dir, file)
+ return (savestr(buf));
+ }
+
+-prepare(i, fd)
++void prepare(i, fd)
+ int i;
+ FILE *fd;
+ {
+ register struct line *p;
+- register j,h;
++ register int j,h;
+
+ fseek(fd, (long)0, 0);
+ p = (struct line *)talloc(3*sizeof(line));
+- for(j=0; h=readhash(fd);) {
++ for(j=0; (h=readhash(fd));) {
+ p = (struct line *)ralloc((char *)p,(++j+3)*sizeof(line));
+ p[j].value = h;
+ }
+@@ -328,9 +347,9 @@ prepare(i, fd)
+ file[i] = p;
+ }
+
+-prune()
++void prune()
+ {
+- register i,j;
++ register int i,j;
+ for(pref=0;pref<len[0]&&pref<len[1]&&
+ file[0][pref+1].value==file[1][pref+1].value;
+ pref++ ) ;
+@@ -345,7 +364,7 @@ prune()
+ }
+ }
+
+-equiv(a,n,b,m,c)
++void equiv(a,n,b,m,c)
+ struct line *a, *b;
+ int *c;
+ {
+@@ -373,7 +392,7 @@ int *c;
+ c[j] = -1;
+ }
+
+-stone(a,n,b,c)
++int stone(a,n,b,c)
+ int *a;
+ int *b;
+ register int *c;
+@@ -414,7 +433,7 @@ register int *c;
+ return(k);
+ }
+
+-newcand(x,y,pred)
++int newcand(x,y,pred)
+ {
+ register struct cand *q;
+ clist = (struct cand *)ralloc((char *)clist,++clen*sizeof(cand));
+@@ -425,7 +444,7 @@ newcand(x,y,pred)
+ return(clen-1);
+ }
+
+-search(c, k, y)
++int search(c, k, y)
+ int *c;
+ {
+ register int i, j, l;
+@@ -449,7 +468,7 @@ int *c;
+ return(l+1);
+ }
+
+-unravel(p)
++void unravel(p)
+ {
+ register int i;
+ register struct cand *q;
+@@ -466,7 +485,7 @@ unravel(p)
+ to confounding by hashing (which result in "jackpot")
+ 2. collect random access indexes to the two files */
+
+-check()
++void check()
+ {
+ register int i, j;
+ int jackpot;
+@@ -565,7 +584,7 @@ check()
+ */
+ }
+
+-sort(a,n) /*shellsort CACM #201*/
++void sort(a,n) /*shellsort CACM #201*/
+ struct line *a;
+ {
+ struct line w;
+@@ -586,8 +605,8 @@ struct line *a;
+ if(aim < ai)
+ break; /*wraparound*/
+ if(aim->value > ai[0].value ||
+- aim->value == ai[0].value &&
+- aim->serial > ai[0].serial)
++ (aim->value == ai[0].value &&
++ aim->serial > ai[0].serial))
+ break;
+ w.value = ai[0].value;
+ ai[0].value = aim->value;
+@@ -600,7 +619,7 @@ struct line *a;
+ }
+ }
+
+-unsort(f, l, b)
++void unsort(f, l, b)
+ struct line *f;
+ int *b;
+ {
+@@ -614,9 +633,9 @@ int *b;
+ free((char *)a);
+ }
+
+-skipline(f)
++int skipline(f)
+ {
+- register i, c;
++ register int i, c;
+
+ for(i=1;(c=getc(input[f]))!='\n';i++)
+ if (c < 0)
+@@ -624,7 +643,7 @@ skipline(f)
+ return(i);
+ }
+
+-output()
++void output()
+ {
+ int m;
+ register int i0, i1, j1;
+@@ -691,7 +710,7 @@ struct context_vec *context_vec_start,
+ and this means that there were lines appended (beginning at b).
+ If c is greater than d then there are lines missing from the to file.
+ */
+-change(a,b,c,d)
++void change(a,b,c,d)
+ {
+ int ch;
+ int lowa,upb,lowc,upd;
+@@ -781,7 +800,7 @@ change(a,b,c,d)
+ }
+ }
+
+-range(a,b,separator)
++void range(a,b,separator)
+ char *separator;
+ {
+ printf("%d", a>b?b:a);
+@@ -790,7 +809,7 @@ char *separator;
+ }
+ }
+
+-fetch(f,a,b,lb,s,oldfile)
++void fetch(f,a,b,lb,s,oldfile)
+ long *f;
+ FILE *lb;
+ char *s;
+@@ -869,13 +888,13 @@ char *s;
+ * arranging line in 7-bit bytes and then
+ * summing 1-s complement in 16-bit hunks
+ */
+-readhash(f)
++int readhash(f)
+ register FILE *f;
+ {
+ register long sum;
+ register unsigned shift;
+- register t;
+- register space;
++ register int t;
++ register int space;
+
+ sum = 1;
+ space = 0;
+@@ -931,12 +950,12 @@ register FILE *f;
+ }
+ }
+ sum = low(sum) + high(sum);
+- return((short)low(sum) + (short)high(sum));
++ return((int)low(sum) + (int)high(sum));
+ }
+
+ #include <a.out.h>
+
+-asciifile(f)
++int asciifile(f)
+ FILE *f;
+ {
+ char buf[BUFSIZ];
+@@ -960,7 +979,7 @@ asciifile(f)
+
+
+ /* dump accumulated "context" diff changes */
+-dump_context_vec()
++void dump_context_vec()
+ {
+ register int a, b, c, d;
+ register char ch;
+@@ -1003,15 +1022,15 @@ dump_context_vec()
+ ch = (a <= b) ? 'd' : 'a';
+
+ if (ch == 'a')
+- fetch(ixold,lowa,b,input[0]," ");
++ fetch(ixold,lowa,b,input[0]," ", 0);
+ else {
+- fetch(ixold,lowa,a-1,input[0]," ");
+- fetch(ixold,a,b,input[0],ch == 'c' ? "! " : "- ");
++ fetch(ixold,lowa,a-1,input[0]," ", 0);
++ fetch(ixold,a,b,input[0],ch == 'c' ? "! " : "- ", 0);
+ }
+ lowa = b + 1;
+ cvp++;
+ }
+- fetch(ixold, b+1, upb, input[0], " ");
++ fetch(ixold, b+1, upb, input[0], " ", 0);
+ }
+
+ /* output changes to the "new" file */
+@@ -1037,15 +1056,15 @@ dump_context_vec()
+ ch = (a <= b) ? 'd' : 'a';
+
+ if (ch == 'd')
+- fetch(ixnew,lowc,d,input[1]," ");
++ fetch(ixnew,lowc,d,input[1]," ", 0);
+ else {
+- fetch(ixnew,lowc,c-1,input[1]," ");
+- fetch(ixnew,c,d,input[1],ch == 'c' ? "! " : "+ ");
++ fetch(ixnew,lowc,c-1,input[1]," ", 0);
++ fetch(ixnew,c,d,input[1],ch == 'c' ? "! " : "+ ", 0);
+ }
+ lowc = d + 1;
+ cvp++;
+ }
+- fetch(ixnew, d+1, upd, input[1], " ");
++ fetch(ixnew, d+1, upd, input[1], " ", 0);
+ }
+
+ context_vec_ptr = context_vec_start - 1;
diff --git a/textproc/2bsd-diff/pkg-descr b/textproc/2bsd-diff/pkg-descr
index 86f09cfb82cf..6477be27c91d 100644
--- a/textproc/2bsd-diff/pkg-descr
+++ b/textproc/2bsd-diff/pkg-descr
@@ -1,7 +1,5 @@
-This is the original diff program from 2.11BSD. It works better
-with very large files on systems with datasize limits.
+2.11BSD's original diff works significantly better with very large
+files with default datasize limits.
-Default FreeBSD limits datasize to 524288 kbytes. This means that
-GNU diff processes that require more than this much ram will fail.
-The 2.11BSD diff did not load the files in core and could operate
-on considerably less ram.
+GNU diff fails with out of memmory when operating on files at or
+above the default limit to datasize.