version 1.6, 2004/11/18 15:54:17 |
version 1.7, 2004/11/26 16:23:50 |
|
|
static int |
static int |
cvs_getlog_file(CVSFILE *cf, void *arg) |
cvs_getlog_file(CVSFILE *cf, void *arg) |
{ |
{ |
char *dir, *repo, rcspath[MAXPATHLEN]; |
char *repo, fpath[MAXPATHLEN]; |
RCSFILE *rf; |
RCSFILE *rf; |
struct cvsroot *root; |
struct cvsroot *root; |
struct cvs_ent *entp; |
struct cvs_ent *entp; |
|
|
|
cvs_file_getpath(cf, fpath, sizeof(fpath)); |
|
|
if (cf->cf_type == DT_DIR) { |
if (cf->cf_type == DT_DIR) { |
if (cf->cf_cvstat == CVS_FST_UNKNOWN) { |
if (cf->cf_cvstat == CVS_FST_UNKNOWN) { |
root = cf->cf_parent->cf_ddat->cd_root; |
root = cf->cf_parent->cf_ddat->cd_root; |
cvs_sendreq(root, CVS_REQ_QUESTIONABLE, cf->cf_name); |
cvs_sendreq(root, CVS_REQ_QUESTIONABLE, |
|
CVS_FILE_NAME(cf)); |
} |
} |
else { |
else { |
root = cf->cf_ddat->cd_root; |
root = cf->cf_ddat->cd_root; |
|
|
|
|
rf = NULL; |
rf = NULL; |
if (cf->cf_parent != NULL) { |
if (cf->cf_parent != NULL) { |
dir = cf->cf_parent->cf_path; |
|
repo = cf->cf_parent->cf_ddat->cd_repo; |
repo = cf->cf_parent->cf_ddat->cd_repo; |
} |
} |
else { |
else { |
dir = "."; |
|
repo = NULL; |
repo = NULL; |
} |
} |
|
|
if (cf->cf_cvstat == CVS_FST_UNKNOWN) { |
if (cf->cf_cvstat == CVS_FST_UNKNOWN) { |
if (root->cr_method == CVS_METHOD_LOCAL) |
if (root->cr_method == CVS_METHOD_LOCAL) |
cvs_printf("? %s\n", cf->cf_path); |
cvs_printf("? %s\n", fpath); |
else |
else |
cvs_sendreq(root, CVS_REQ_QUESTIONABLE, cf->cf_name); |
cvs_sendreq(root, CVS_REQ_QUESTIONABLE, |
|
CVS_FILE_NAME(cf)); |
return (0); |
return (0); |
} |
} |
|
|
entp = cvs_ent_getent(cf->cf_path); |
entp = cvs_ent_getent(fpath); |
if (entp == NULL) |
if (entp == NULL) |
return (-1); |
return (-1); |
|
|
|
|
if (root->cr_method != CVS_METHOD_LOCAL) { |
if (root->cr_method != CVS_METHOD_LOCAL) { |
switch (cf->cf_cvstat) { |
switch (cf->cf_cvstat) { |
case CVS_FST_UPTODATE: |
case CVS_FST_UPTODATE: |
cvs_sendreq(root, CVS_REQ_UNCHANGED, cf->cf_name); |
cvs_sendreq(root, CVS_REQ_UNCHANGED, CVS_FILE_NAME(cf)); |
break; |
break; |
case CVS_FST_ADDED: |
case CVS_FST_ADDED: |
case CVS_FST_MODIFIED: |
case CVS_FST_MODIFIED: |
cvs_sendreq(root, CVS_REQ_ISMODIFIED, cf->cf_name); |
cvs_sendreq(root, CVS_REQ_ISMODIFIED, |
|
CVS_FILE_NAME(cf)); |
break; |
break; |
default: |
default: |
return (-1); |
return (-1); |
|
|
return (0); |
return (0); |
} |
} |
|
|
snprintf(rcspath, sizeof(rcspath), "%s/%s/%s%s", |
snprintf(fpath, sizeof(fpath), "%s/%s/%s%s", |
root->cr_dir, repo, cf->cf_path, RCS_FILE_EXT); |
root->cr_dir, repo, fpath, RCS_FILE_EXT); |
|
|
rf = rcs_open(rcspath, RCS_MODE_READ); |
rf = rcs_open(fpath, RCS_MODE_READ); |
if (rf == NULL) { |
if (rf == NULL) { |
cvs_ent_free(entp); |
cvs_ent_free(entp); |
return (-1); |
return (-1); |