version 1.23, 2005/11/29 11:11:39 |
version 1.24, 2005/12/01 23:02:27 |
|
|
BUF *b1, *b2; |
BUF *b1, *b2; |
char rbuf[64]; |
char rbuf[64]; |
struct stat st; |
struct stat st; |
|
struct timeval tv[2], tv2[2]; |
|
memset(&tv, 0, sizeof(tv)); |
|
memset(&tv2, 0, sizeof(tv2)); |
|
|
if (stat(filename, &st) == -1) { |
if (stat(filename, &st) == -1) { |
cvs_log(LP_ERRNO, "%s", filename); |
cvs_log(LP_ERRNO, "%s", filename); |
|
|
cvs_log(LP_ERR, "failed to retrieve revision"); |
cvs_log(LP_ERR, "failed to retrieve revision"); |
return (-1); |
return (-1); |
} |
} |
|
tv[0].tv_sec = (long)rcs_rev_getdate(file, rev); |
|
tv[1].tv_sec = tv[0].tv_sec; |
|
|
if ((b2 = cvs_buf_load(filename, BUF_AUTOEXT)) == NULL) { |
if ((b2 = cvs_buf_load(filename, BUF_AUTOEXT)) == NULL) { |
cvs_log(LP_ERR, "failed to load file: '%s'", filename); |
cvs_log(LP_ERR, "failed to load file: '%s'", filename); |
cvs_buf_free(b1); |
cvs_buf_free(b1); |
return (-1); |
return (-1); |
} |
} |
|
tv2[0].tv_sec = st.st_mtime; |
|
tv2[1].tv_sec = st.st_mtime; |
|
|
strlcpy(path1, rcs_tmpdir, sizeof(path1)); |
strlcpy(path1, rcs_tmpdir, sizeof(path1)); |
strlcat(path1, "/diff1.XXXXXXXXXX", sizeof(path1)); |
strlcat(path1, "/diff1.XXXXXXXXXX", sizeof(path1)); |
|
|
return (-1); |
return (-1); |
} |
} |
cvs_buf_free(b1); |
cvs_buf_free(b1); |
|
if (utimes(path1, (const struct timeval *)&tv) < 0) |
|
cvs_log(LP_ERRNO, "error setting utimes"); |
|
|
strlcpy(path2, rcs_tmpdir, sizeof(path2)); |
strlcpy(path2, rcs_tmpdir, sizeof(path2)); |
strlcat(path2, "/diff2.XXXXXXXXXX", sizeof(path2)); |
strlcat(path2, "/diff2.XXXXXXXXXX", sizeof(path2)); |
|
|
return (-1); |
return (-1); |
} |
} |
cvs_buf_free(b2); |
cvs_buf_free(b2); |
|
if (utimes(path2, (const struct timeval *)&tv2) < 0) |
|
cvs_log(LP_ERRNO, "error setting utimes"); |
|
|
cvs_diffreg(path1, path2, NULL); |
cvs_diffreg(path1, path2, NULL); |
(void)unlink(path1); |
(void)unlink(path1); |
|
|
char path1[MAXPATHLEN], path2[MAXPATHLEN]; |
char path1[MAXPATHLEN], path2[MAXPATHLEN]; |
BUF *b1, *b2; |
BUF *b1, *b2; |
char rbuf1[64], rbuf2[64]; |
char rbuf1[64], rbuf2[64]; |
|
struct timeval tv[2], tv2[2]; |
|
|
|
memset(&tv, 0, sizeof(tv)); |
|
memset(&tv2, 0, sizeof(tv2)); |
|
|
rcsnum_tostr(rev1, rbuf1, sizeof(rbuf1)); |
rcsnum_tostr(rev1, rbuf1, sizeof(rbuf1)); |
if (verbose == 1) |
if (verbose == 1) |
printf("retrieving revision %s\n", rbuf1); |
printf("retrieving revision %s\n", rbuf1); |
|
|
cvs_log(LP_ERR, "failed to retrieve revision"); |
cvs_log(LP_ERR, "failed to retrieve revision"); |
return (-1); |
return (-1); |
} |
} |
|
tv[0].tv_sec = (long)rcs_rev_getdate(file, rev1); |
|
tv[1].tv_sec = tv[0].tv_sec; |
|
|
rcsnum_tostr(rev2, rbuf2, sizeof(rbuf2)); |
rcsnum_tostr(rev2, rbuf2, sizeof(rbuf2)); |
if (verbose == 1) |
if (verbose == 1) |
|
|
cvs_log(LP_ERR, "failed to retrieve revision"); |
cvs_log(LP_ERR, "failed to retrieve revision"); |
return (-1); |
return (-1); |
} |
} |
|
tv2[0].tv_sec = (long)rcs_rev_getdate(file, rev2); |
|
tv2[1].tv_sec = tv2[0].tv_sec; |
|
|
if (verbose == 1) |
if (verbose == 1) |
fprintf(stderr, |
fprintf(stderr, |
|
|
return (-1); |
return (-1); |
} |
} |
cvs_buf_free(b1); |
cvs_buf_free(b1); |
|
if (utimes(path1, (const struct timeval *)&tv) < 0) |
|
cvs_log(LP_ERRNO, "error setting utimes"); |
|
|
strlcpy(path2, rcs_tmpdir, sizeof(path2)); |
strlcpy(path2, rcs_tmpdir, sizeof(path2)); |
strlcat(path2, "/diff2.XXXXXXXXXX", sizeof(path2)); |
strlcat(path2, "/diff2.XXXXXXXXXX", sizeof(path2)); |
|
|
} |
} |
cvs_buf_free(b2); |
cvs_buf_free(b2); |
|
|
|
if (utimes(path2, (const struct timeval *)&tv2) < 0) |
|
cvs_log(LP_ERRNO, "error setting utimes"); |
|
|
cvs_diffreg(path1, path2, NULL); |
cvs_diffreg(path1, path2, NULL); |
(void)unlink(path1); |
(void)unlink(path1); |
(void)unlink(path2); |
(void)unlink(path2); |