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

Diff for /src/usr.bin/rcs/co.c between version 1.42 and 1.43

version 1.42, 2005/12/02 11:45:02 version 1.43, 2005/12/05 19:46:24
Line 38 
Line 38 
   
 #define CO_OPTSTRING    "f::k:l::M::p::q::r::s:Tu::Vw::x:"  #define CO_OPTSTRING    "f::k:l::M::p::q::r::s:Tu::Vw::x:"
   
 static int checkout_state(RCSFILE *, RCSNUM *, const char *, int,  static int      checkout_state(RCSFILE *, RCSNUM *, const char *, int,
     const char *, const char *);      const char *, const char *);
   static void     checkout_err_nobranch(RCSFILE *, const char *, const char *,
       const char *, int);
   
 int  int
 checkout_main(int argc, char **argv)  checkout_main(int argc, char **argv)
Line 50 
Line 52 
         char fpath[MAXPATHLEN], buf[16];          char fpath[MAXPATHLEN], buf[16];
         char *username;          char *username;
         const char *state;          const char *state;
           struct rcs_delta *rdp;
         time_t rcs_mtime = -1;          time_t rcs_mtime = -1;
   
         flags = 0;          flags = 0;
Line 111 
Line 114 
                         exit(0);                          exit(0);
                 case 'w':                  case 'w':
                         username = rcs_optarg;                          username = rcs_optarg;
                           flags |= CO_AUTHOR;
                         break;                          break;
                 case 'x':                  case 'x':
                         rcs_suffixes = rcs_optarg;                          rcs_suffixes = rcs_optarg;
Line 164 
Line 168 
   
                 rcsnum_tostr(frev, buf, sizeof(buf));                  rcsnum_tostr(frev, buf, sizeof(buf));
   
                   if ((rdp = rcs_findrev(file, frev)) == NULL)
                           return (-1);
   
                   if (((flags & CO_STATE) &&
                       (strcmp(rdp->rd_state, state) != 0)) ||
                       ((flags & CO_AUTHOR) &&
                       (strcmp(rdp->rd_author, username) != 0))) {
                           checkout_err_nobranch(file, username, NULL, state,
                               flags);
                           return (-1);
                   }
   
                 if (flags & CO_STATE) {                  if (flags & CO_STATE) {
                         if (checkout_state(file, frev, argv[i], flags,                          if (checkout_state(file, frev, argv[i], flags,
                             username, state) < 0) {                              username, state) < 0) {
Line 322 
Line 338 
 {  {
         const char *tstate;          const char *tstate;
   
         if (rev == NULL) {          if (rev == NULL)
                 cvs_log(LP_ERR, "%s: No revision on branch has state %s",  
                     file->rf_path, state);  
                 return (-1);                  return (-1);
         } else {          else {
                 if (((tstate = rcs_state_get(file, rev)) != NULL)                  if (((tstate = rcs_state_get(file, rev)) != NULL)
                     && (strcmp(state, tstate) == 0))                      && (strcmp(state, tstate) == 0))
                         return (checkout_rev(file, rev, dst, flags, username));                          return (checkout_rev(file, rev, dst, flags, username));
Line 334 
Line 348 
                         rev = rcsnum_dec(rev);                          rev = rcsnum_dec(rev);
                 return (checkout_state(file, rev, dst, flags, username, state));                  return (checkout_state(file, rev, dst, flags, username, state));
         }          }
   }
   
   /*
    * checkout_err_nobranch()
    *
    * XXX - should handle the dates too.
    */
   static void
   checkout_err_nobranch(RCSFILE *file, const char *author, const char *date,
       const char *state, int flags)
   {
           if (!(flags & CO_AUTHOR))
                   author = NULL;
           if (!(flags & CO_STATE))
                   state = NULL;
   
           cvs_log(LP_ERR, "%s: No revision on branch has%s%s%s%s%s%s.",
               file->rf_path,
               date ? " a date before " : "",
               date ? date : "",
               author ? " and author " + (date ? 0:4 ) : "",
               author ? author : "",
               state  ? " and state " + (date || author ? 0:4) : "",
               state  ? state : "");
 }  }

Legend:
Removed from v.1.42  
changed lines
  Added in v.1.43