version 1.27, 2005/04/11 18:02:58 |
version 1.28, 2005/04/12 14:58:40 |
|
|
|
|
dap = (struct diff_arg *)malloc(sizeof(*dap)); |
dap = (struct diff_arg *)malloc(sizeof(*dap)); |
if (dap == NULL) |
if (dap == NULL) |
return (-1); |
return (CVS_EX_DATA); |
dap->date1 = dap->date2 = dap->rev1 = dap->rev2 = NULL; |
dap->date1 = dap->date2 = dap->rev1 = dap->rev2 = NULL; |
strlcpy(diffargs, argv[0], sizeof(diffargs)); |
strlcpy(diffargs, argv[0], sizeof(diffargs)); |
|
|
|
|
cvs_log(LP_ERR, |
cvs_log(LP_ERR, |
"no more than two revisions/dates can " |
"no more than two revisions/dates can " |
"be specified"); |
"be specified"); |
return (1); |
return (CVS_EX_USAGE); |
} |
} |
break; |
break; |
case 'u': |
case 'u': |
|
|
format = D_UNIFIED; |
format = D_UNIFIED; |
break; |
break; |
default: |
default: |
return (1); |
return (CVS_EX_USAGE); |
} |
} |
} |
} |
|
|
|
|
{ |
{ |
/* send the flags */ |
/* send the flags */ |
if (Nflag && (cvs_sendarg(root, "-N", 0) < 0)) |
if (Nflag && (cvs_sendarg(root, "-N", 0) < 0)) |
return (-1); |
return (CVS_EX_PROTO); |
if (pflag && (cvs_sendarg(root, "-p", 0) < 0)) |
if (pflag && (cvs_sendarg(root, "-p", 0) < 0)) |
return (-1); |
return (CVS_EX_PROTO); |
|
|
if (format == D_CONTEXT) |
if (format == D_CONTEXT) |
cvs_sendarg(root, "-c", 0); |
cvs_sendarg(root, "-c", 0); |
|
|
|
|
entp = cvs_ent_getent(diff_file); |
entp = cvs_ent_getent(diff_file); |
if (entp == NULL) |
if (entp == NULL) |
return (-1); |
return (CVS_EX_DATA); |
|
|
if (root->cr_method != CVS_METHOD_LOCAL) { |
if (root->cr_method != CVS_METHOD_LOCAL) { |
if (cvs_sendentry(root, entp) < 0) { |
if (cvs_sendentry(root, entp) < 0) { |
cvs_ent_free(entp); |
cvs_ent_free(entp); |
return (-1); |
return (CVS_EX_PROTO); |
} |
} |
} |
} |
|
|
|
|
rf = rcs_open(rcspath, RCS_READ); |
rf = rcs_open(rcspath, RCS_READ); |
if (rf == NULL) { |
if (rf == NULL) { |
cvs_ent_free(entp); |
cvs_ent_free(entp); |
return (-1); |
return (CVS_EX_DATA); |
} |
} |
|
|
cvs_printf("Index: %s\n%s\nRCS file: %s\n", diff_file, |
cvs_printf("Index: %s\n%s\nRCS file: %s\n", diff_file, |
|
|
else { |
else { |
if ((r1 = rcsnum_parse(dap->rev1)) == NULL) { |
if ((r1 = rcsnum_parse(dap->rev1)) == NULL) { |
cvs_ent_free(entp); |
cvs_ent_free(entp); |
return (-1); |
return (CVS_EX_DATA); |
} |
} |
} |
} |
|
|
|
|
cvs_printf("retrieving revision %s\n", dap->rev2); |
cvs_printf("retrieving revision %s\n", dap->rev2); |
if ((r2 = rcsnum_parse(dap->rev2)) == NULL) { |
if ((r2 = rcsnum_parse(dap->rev2)) == NULL) { |
cvs_ent_free(entp); |
cvs_ent_free(entp); |
return (-1); |
return (CVS_EX_DATA); |
} |
} |
b2 = rcs_getrev(rf, r2); |
b2 = rcs_getrev(rf, r2); |
rcsnum_free(r2); |
rcsnum_free(r2); |
|
|
if (cvs_buf_write_stmp(b1, path_tmp1, 0600) == -1) { |
if (cvs_buf_write_stmp(b1, path_tmp1, 0600) == -1) { |
cvs_buf_free(b1); |
cvs_buf_free(b1); |
cvs_buf_free(b2); |
cvs_buf_free(b2); |
return (-1); |
return (CVS_EX_DATA); |
} |
} |
cvs_buf_free(b1); |
cvs_buf_free(b1); |
|
|
|
|
if (cvs_buf_write_stmp(b2, path_tmp2, 0600) == -1) { |
if (cvs_buf_write_stmp(b2, path_tmp2, 0600) == -1) { |
cvs_buf_free(b2); |
cvs_buf_free(b2); |
(void)unlink(path_tmp1); |
(void)unlink(path_tmp1); |
return (-1); |
return (CVS_EX_DATA); |
} |
} |
cvs_buf_free(b2); |
cvs_buf_free(b2); |
|
|