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

Diff for /src/usr.bin/cvs/checkout.c between version 1.12 and 1.13

version 1.12, 2004/12/14 01:11:51 version 1.13, 2005/02/22 22:12:00
Line 39 
Line 39 
 #include "proto.h"  #include "proto.h"
   
   
   #define CVS_LISTMOD    1
   #define CVS_STATMOD    2
   
   
 /*  /*
  * cvs_checkout()   * cvs_checkout()
  *   *
Line 49 
Line 52 
 int  int
 cvs_checkout(int argc, char **argv)  cvs_checkout(int argc, char **argv)
 {  {
         int i, ch;          int i, ch, statmod, kflag;
           char *date, *rev, *koptstr, *tgtdir, *rcsid;
         struct cvsroot *root;          struct cvsroot *root;
   
         while ((ch = getopt(argc, argv, "c")) != -1) {          statmod = 0;
           rcsid = NULL;
           tgtdir = NULL;
           kflag = RCS_KWEXP_DEFAULT;
   
           while ((ch = getopt(argc, argv, "AcD:d:fj:k:lNnPRr:st:")) != -1) {
                 switch (ch) {                  switch (ch) {
                   case 'A':
                           break;
                 case 'c':                  case 'c':
                           statmod = CVS_LISTMOD;
                         break;                          break;
                   case 'D':
                           date = optarg;
                           break;
                   case 'd':
                           tgtdir = optarg;
                           break;
                   case 'f':
                           break;
                   case 'j':
                           break;
                   case 'k':
                           koptstr = optarg;
                           kflag = rcs_kflag_get(koptstr);
                           if (RCS_KWEXP_INVAL(kflag)) {
                                   cvs_log(LP_ERR,
                                       "invalid RCS keyword expansion mode");
                                   rcs_kflag_usage();
                                   return (EX_USAGE);
                           }
                           break;
                   case 'r':
                           rev = optarg;
                           break;
                   case 's':
                           statmod = CVS_STATMOD;
                           break;
                   case 't':
                           rcsid = optarg;
                           break;
                 default:                  default:
                         return (EX_USAGE);                          return (EX_USAGE);
                 }                  }
Line 64 
Line 105 
         argc -= optind;          argc -= optind;
         argv += optind;          argv += optind;
   
         if (argc == 0) {          if (!statmod && (argc == 0)) {
                 cvs_log(LP_ERR,                  cvs_log(LP_ERR,
                     "must specify at least one module or directory");                      "must specify at least one module or directory");
                 return (EX_USAGE);                  return (EX_USAGE);
         }          }
   
           if (statmod && (argc > 0)) {
                   cvs_log(LP_ERR,  "-c and -s must not get any arguments");
                   return (EX_USAGE);
           }
   
         if ((cvs_files = cvs_file_get(".", 0)) == NULL)          if ((cvs_files = cvs_file_get(".", 0)) == NULL)
                 return (EX_USAGE);                  return (EX_USAGE);
   
Line 90 
Line 136 
                         if (cvs_sendarg(root, argv[i], 0) < 0)                          if (cvs_sendarg(root, argv[i], 0) < 0)
                                 break;                                  break;
   
                 if ((cvs_senddir(root, cvs_files) < 0) ||                  if (cvs_senddir(root, cvs_files) < 0)
                     (cvs_sendreq(root, CVS_REQ_XPANDMOD, NULL) < 0))                          return (EX_PROTOCOL);
                   if (cvs_sendreq(root, CVS_REQ_XPANDMOD, NULL) < 0)
                         cvs_log(LP_ERR, "failed to expand module");                          cvs_log(LP_ERR, "failed to expand module");
   
                 /* XXX not too sure why we have to send this arg */                  /* XXX not too sure why we have to send this arg */
                 if (cvs_sendarg(root, "-N", 0) < 0)                  if (cvs_sendarg(root, "-N", 0) < 0)
                           return (EX_PROTOCOL);
   
                   if ((statmod == CVS_LISTMOD) &&
                       (cvs_sendarg(root, "-c", 0) < 0))
                           return (EX_PROTOCOL);
   
                   if ((statmod == CVS_STATMOD) &&
                       (cvs_sendarg(root, "-s", 0) < 0))
                         return (EX_PROTOCOL);                          return (EX_PROTOCOL);
   
                 for (i = 0; i < argc; i++)                  for (i = 0; i < argc; i++)

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13