version 1.279, 2008/09/12 13:11:15 |
version 1.280, 2008/09/12 13:24:24 |
|
|
|
|
if (!strcmp(revstr, RCS_HEAD_BRANCH)) { |
if (!strcmp(revstr, RCS_HEAD_BRANCH)) { |
if (rfp->rf_head == NULL) |
if (rfp->rf_head == NULL) |
return NULL; |
return (NULL); |
|
|
frev = rcsnum_alloc(); |
frev = rcsnum_alloc(); |
rcsnum_cpy(rfp->rf_head, frev, 0); |
rcsnum_cpy(rfp->rf_head, frev, 0); |
|
|
/* Possibly we could be passed a version number */ |
/* Possibly we could be passed a version number */ |
if ((rev = rcsnum_parse(revstr)) != NULL) { |
if ((rev = rcsnum_parse(revstr)) != NULL) { |
/* Do not return if it is not in RCS file */ |
/* Do not return if it is not in RCS file */ |
if ((rdp = rcs_findrev(rfp, rev)) != NULL) { |
if ((rdp = rcs_findrev(rfp, rev)) != NULL) |
frev = rcsnum_alloc(); |
return (rev); |
rcsnum_cpy(rev, frev, 0); |
|
return (frev); |
|
} |
|
} else { |
} else { |
/* More likely we will be passed a symbol */ |
/* More likely we will be passed a symbol */ |
rev = rcs_sym_getrev(rfp, revstr); |
rev = rcs_sym_getrev(rfp, revstr); |
|
|
* the minimum of both revision lengths is taken |
* the minimum of both revision lengths is taken |
* instead of just 2. |
* instead of just 2. |
*/ |
*/ |
if (rfp->rf_head == NULL) |
if (rfp->rf_head == NULL || rcsnum_cmp(rev, rfp->rf_head, |
return NULL; |
|
|
|
if (rcsnum_cmp(rev, rfp->rf_head, |
|
MIN(rfp->rf_head->rn_len, rev->rn_len)) < 0) { |
MIN(rfp->rf_head->rn_len, rev->rn_len)) < 0) { |
rcsnum_free(rev); |
rcsnum_free(rev); |
return NULL; |
return (NULL); |
} |
} |
return (rev); |
return (rev); |
} |
} |