version 1.15, 2003/06/25 17:49:22 |
version 1.16, 2003/06/25 21:43:49 |
|
|
|
|
member = (int *)file[1]; |
member = (int *)file[1]; |
equiv(sfile[0], slen[0], sfile[1], slen[1], member); |
equiv(sfile[0], slen[0], sfile[1], slen[1], member); |
member = ralloc(member, (slen[1] + 2) * sizeof(int)); |
member = erealloc(member, (slen[1] + 2) * sizeof(int)); |
|
|
class = (int *)file[0]; |
class = (int *)file[0]; |
unsort(sfile[0], slen[0], class); |
unsort(sfile[0], slen[0], class); |
class = ralloc(class, (slen[0] + 2) * sizeof(int)); |
class = erealloc(class, (slen[0] + 2) * sizeof(int)); |
|
|
klist = talloc((slen[0] + 2) * sizeof(int)); |
klist = emalloc((slen[0] + 2) * sizeof(int)); |
clist = talloc(sizeof(cand)); |
clist = emalloc(sizeof(cand)); |
i = stone(class, slen[0], member, klist); |
i = stone(class, slen[0], member, klist); |
free(member); |
free(member); |
free(class); |
free(class); |
|
|
J = talloc((len[0] + 2) * sizeof(int)); |
J = emalloc((len[0] + 2) * sizeof(int)); |
unravel(klist[i]); |
unravel(klist[i]); |
free(clist); |
free(clist); |
free(klist); |
free(klist); |
|
|
ixold = talloc((len[0] + 2) * sizeof(long)); |
ixold = emalloc((len[0] + 2) * sizeof(long)); |
ixnew = talloc((len[1] + 2) * sizeof(long)); |
ixnew = emalloc((len[1] + 2) * sizeof(long)); |
check(); |
check(); |
output(); |
output(); |
status = anychange; |
status = anychange; |
|
|
char * |
char * |
splice(char *dir, char *file) |
splice(char *dir, char *file) |
{ |
{ |
char *tail, buf[BUFSIZ]; |
char *tail, *buf; |
|
size_t len; |
|
|
if (!strcmp(file, "-")) { |
if (!strcmp(file, "-")) { |
warnx("can't specify - with other arg directory"); |
warnx("can't specify - with other arg directory"); |
done(0); |
done(0); |
} |
} |
tail = strrchr(file, '/'); |
tail = strrchr(file, '/'); |
if (tail == 0) |
if (tail == NULL) |
tail = file; |
tail = file; |
else |
else |
tail++; |
tail++; |
snprintf(buf, sizeof buf, "%s/%s", dir, tail); |
len = strlen(dir) + strlen(tail) + 1; |
return (strdup(buf)); |
buf = emalloc(len); |
|
snprintf(buf, len, "%s/%s", dir, tail); |
|
return (buf); |
} |
} |
|
|
static void |
static void |
|
|
int j, h; |
int j, h; |
|
|
fseek(fd, 0L, SEEK_SET); |
fseek(fd, 0L, SEEK_SET); |
p = talloc(3 * sizeof(struct line)); |
p = emalloc(3 * sizeof(struct line)); |
for (j = 0; (h = readhash(fd));) { |
for (j = 0; (h = readhash(fd));) { |
p = ralloc(p, (++j + 3) * sizeof(struct line)); |
p = erealloc(p, (++j + 3) * sizeof(struct line)); |
p[j].value = h; |
p[j].value = h; |
} |
} |
len[i] = j; |
len[i] = j; |
|
|
{ |
{ |
struct cand *q; |
struct cand *q; |
|
|
clist = ralloc(clist, ++clen * sizeof(cand)); |
clist = erealloc(clist, ++clen * sizeof(cand)); |
q = clist + clen - 1; |
q = clist + clen - 1; |
q->x = x; |
q->x = x; |
q->y = y; |
q->y = y; |
|
|
} |
} |
|
|
/* |
/* |
* check does double duty: 1. ferret out any fortuitous correspondences due |
* Check does double duty: |
* to confounding by hashing (which result in "jackpot") 2. collect random |
* 1. ferret out any fortuitous correspondences due |
* access indexes to the two files |
* to confounding by hashing (which result in "jackpot") |
|
* 2. collect random access indexes to the two files |
*/ |
*/ |
|
|
static void |
static void |
check(void) |
check(void) |
{ |
{ |
|
|
{ |
{ |
int *a, i; |
int *a, i; |
|
|
a = talloc((l + 1) * sizeof(int)); |
a = emalloc((l + 1) * sizeof(int)); |
for (i = 1; i <= l; i++) |
for (i = 1; i <= l; i++) |
a[f[i].serial] = f[i].value; |
a[f[i].serial] = f[i].value; |
for (i = 1; i <= l; i++) |
for (i = 1; i <= l; i++) |
|
|
stat(file2, &stbuf); |
stat(file2, &stbuf); |
printf("%s", ctime(&stbuf.st_mtime)); |
printf("%s", ctime(&stbuf.st_mtime)); |
|
|
context_vec_start = talloc(MAX_CONTEXT * |
context_vec_start = emalloc(MAX_CONTEXT * |
sizeof(struct context_vec)); |
sizeof(struct context_vec)); |
context_vec_end = context_vec_start + MAX_CONTEXT; |
context_vec_end = context_vec_start + MAX_CONTEXT; |
context_vec_ptr = context_vec_start - 1; |
context_vec_ptr = context_vec_start - 1; |
|
|
return (0); |
return (0); |
return (1); |
return (1); |
} |
} |
|
|
|
|
/* dump accumulated "context" diff changes */ |
/* dump accumulated "context" diff changes */ |
static void |
static void |