version 1.3, 2004/12/21 18:32:09 |
version 1.4, 2005/01/13 16:32:46 |
|
|
int |
int |
cvs_annotate(int argc, char **argv) |
cvs_annotate(int argc, char **argv) |
{ |
{ |
int i, ch, flags; |
int i, ch, flags, usehead; |
char *date, *rev; |
char *date, *rev; |
struct cvsroot *root; |
struct cvsroot *root; |
|
|
|
usehead = 0; |
date = NULL; |
date = NULL; |
rev = NULL; |
rev = NULL; |
flags = CF_SORT|CF_RECURSE|CF_IGNORE|CF_NOSYMS; |
flags = CF_SORT|CF_RECURSE|CF_IGNORE|CF_NOSYMS; |
|
|
while ((ch = getopt(argc, argv, "D:FflRr:")) != -1) { |
while ((ch = getopt(argc, argv, "D:flRr:")) != -1) { |
switch (ch) { |
switch (ch) { |
case 'D': |
case 'D': |
date = optarg; |
date = optarg; |
break; |
break; |
|
case 'f': |
|
usehead = 1; |
|
break; |
case 'l': |
case 'l': |
flags &= ~CF_RECURSE; |
flags &= ~CF_RECURSE; |
break; |
break; |
|
|
flags |= CF_RECURSE; |
flags |= CF_RECURSE; |
break; |
break; |
case 'r': |
case 'r': |
|
rev = optarg; |
break; |
break; |
default: |
default: |
return (EX_USAGE); |
return (EX_USAGE); |
} |
} |
} |
} |
|
|
|
if ((date != NULL) && (rev != NULL)) { |
|
cvs_log(LP_ERR, |
|
"the -D and -d arguments are mutually exclusive"); |
|
return (EX_USAGE); |
|
} |
|
|
argc -= optind; |
argc -= optind; |
argv += optind; |
argv += optind; |
|
|
|
|
|
|
if (root->cr_method != CVS_METHOD_LOCAL) { |
if (root->cr_method != CVS_METHOD_LOCAL) { |
if (cvs_connect(root) < 0) |
if (cvs_connect(root) < 0) |
|
return (EX_PROTOCOL); |
|
if (usehead && (cvs_sendarg(root, "-f", 0) < 0)) |
return (EX_PROTOCOL); |
return (EX_PROTOCOL); |
if (rev != NULL) { |
if (rev != NULL) { |
if ((cvs_sendarg(root, "-r", 0) < 0) || |
if ((cvs_sendarg(root, "-r", 0) < 0) || |