[BACK]Return to annotate.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / cvs

Diff for /src/usr.bin/cvs/annotate.c between version 1.1 and 1.2

version 1.1, 2004/12/09 20:03:26 version 1.2, 2004/12/14 22:30:47
Line 94 
Line 94 
                 return (EX_DATAERR);                  return (EX_DATAERR);
   
         root = CVS_DIR_ROOT(cvs_files);          root = CVS_DIR_ROOT(cvs_files);
         if (root->cr_method != NULL) {          if (root == NULL) {
                 cvs_connect(root);                  cvs_log(LP_ERR,
                       "No CVSROOT specified!  Please use the `-d' option");
                   cvs_log(LP_ERR,
                       "or set the CVSROOT environment variable.");
                   return (EX_USAGE);
           }
   
           if (root->cr_method != CVS_METHOD_LOCAL) {
                   if (cvs_connect(root) < 0)
                           return (EX_PROTOCOL);
                 if (rev != NULL) {                  if (rev != NULL) {
                         cvs_sendarg(root, "-r", 0);                          if ((cvs_sendarg(root, "-r", 0) < 0) ||
                         cvs_sendarg(root, rev, 0);                              (cvs_sendarg(root, rev, 0) < 0))
                                   return (EX_PROTOCOL);
                 }                  }
                 if (date != NULL) {                  if (date != NULL) {
                         cvs_sendarg(root, "-D", 0);                          if ((cvs_sendarg(root, "-D", 0) < 0) ||
                         cvs_sendarg(root, date, 0);                              (cvs_sendarg(root, date, 0) < 0))
                                   return (EX_PROTOCOL);
                 }                  }
         }          }
   
Line 110 
Line 121 
   
   
         if (root->cr_method != CVS_METHOD_LOCAL) {          if (root->cr_method != CVS_METHOD_LOCAL) {
                 cvs_senddir(root, cvs_files);                  if (cvs_senddir(root, cvs_files) < 0)
                           return (EX_PROTOCOL);
                 for (i = 0; i < argc; i++)                  for (i = 0; i < argc; i++)
                         cvs_sendarg(root, argv[i], 0);                          if (cvs_sendarg(root, argv[i], 0) < 0)
                 cvs_sendreq(root, CVS_REQ_ANNOTATE, NULL);                                  return (EX_PROTOCOL);
                   if (cvs_sendreq(root, CVS_REQ_ANNOTATE, NULL) < 0)
                           return (EX_PROTOCOL);
         }          }
   
         return (0);          return (0);
Line 128 
Line 142 
 int  int
 cvs_annotate_file(CVSFILE *cf, void *arg)  cvs_annotate_file(CVSFILE *cf, void *arg)
 {  {
           int ret;
         char fpath[MAXPATHLEN];          char fpath[MAXPATHLEN];
         struct cvsroot *root;          struct cvsroot *root;
         struct cvs_ent *entp;          struct cvs_ent *entp;
   
         cvs_file_getpath(cf, fpath, sizeof(fpath));          ret = 0;
           root = CVS_DIR_ROOT(cf);
   
         if (cf->cf_type == DT_DIR) {          if ((root->cr_method != CVS_METHOD_LOCAL) && (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;                          ret = cvs_sendreq(root, CVS_REQ_QUESTIONABLE,
                         cvs_sendreq(root, CVS_REQ_QUESTIONABLE,  
                             CVS_FILE_NAME(cf));                              CVS_FILE_NAME(cf));
                 } else {  
                         root = cf->cf_ddat->cd_root;  
                         if ((cf->cf_parent == NULL) ||  
                             (root != cf->cf_parent->cf_ddat->cd_root)) {  
                                 cvs_connect(root);  
                         }  
   
                         cvs_senddir(root, cf);  
                 }  
   
                 return (0);  
         } else  
                 root = cf->cf_parent->cf_ddat->cd_root;  
   
         if (cf->cf_cvstat == CVS_FST_UNKNOWN) {  
                 if (root->cr_method == CVS_METHOD_LOCAL)  
                         cvs_printf("? %s\n", fpath);  
                 else                  else
                         cvs_sendreq(root, CVS_REQ_QUESTIONABLE,                          ret = cvs_senddir(root, cf);
                             CVS_FILE_NAME(cf));                  return (ret);
                 return (0);  
         }          }
   
           cvs_file_getpath(cf, fpath, sizeof(fpath));
         entp = cvs_ent_getent(fpath);          entp = cvs_ent_getent(fpath);
         if ((entp != NULL) && (root->cr_method != CVS_METHOD_LOCAL) &&  
             (cvs_sendentry(root, entp) < 0)) {  
                 cvs_ent_free(entp);  
                 return (-1);  
         }  
   
         if (root->cr_method != CVS_METHOD_LOCAL) {          if (root->cr_method != CVS_METHOD_LOCAL) {
                   if ((entp != NULL) && (cvs_sendentry(root, entp) < 0)) {
                           cvs_ent_free(entp);
                           return (-1);
                   }
   
                 switch (cf->cf_cvstat) {                  switch (cf->cf_cvstat) {
                   case CVS_FST_UNKNOWN:
                           ret = cvs_sendreq(root, CVS_REQ_QUESTIONABLE,
                               CVS_FILE_NAME(cf));
                           break;
                 case CVS_FST_UPTODATE:                  case CVS_FST_UPTODATE:
                         cvs_sendreq(root, CVS_REQ_UNCHANGED, CVS_FILE_NAME(cf));                          ret = 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,                          ret = cvs_sendreq(root, CVS_REQ_ISMODIFIED,
                             CVS_FILE_NAME(cf));                              CVS_FILE_NAME(cf));
                         break;                          break;
                 default:                  default:
                         return (-1);                          break;
                 }                  }
           } else {
                   if (cf->cf_cvstat == CVS_FST_UNKNOWN) {
                           cvs_printf("? %s\n", fpath);
                           return (0);
                   }
         }          }
   
         if (entp != NULL)          if (entp != NULL)
                 cvs_ent_free(entp);                  cvs_ent_free(entp);
         return (0);          return (ret);
 }  }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2