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

Diff for /src/usr.bin/cvs/admin.c between version 1.41 and 1.42

version 1.41, 2006/12/31 15:38:11 version 1.42, 2007/01/01 23:49:06
Line 43 
Line 43 
   
 static int       runflags = 0;  static int       runflags = 0;
 static int       lkmode = RCS_LOCK_INVAL;  static int       lkmode = RCS_LOCK_INVAL;
 static char     *alist, *comment, *elist, *logmsg, *logstr, *orange;  static char     *alist, *comment, *elist, *logmsg, *logstr, *orange, *state, *statestr;
 static RCSNUM   *logrev;  static RCSNUM   *logrev;
   
 int  int
Line 55 
Line 55 
   
         flags = CR_RECURSE_DIRS;          flags = CR_RECURSE_DIRS;
   
         alist = comment = elist = logmsg = logstr = orange = NULL;          alist = comment = elist = logmsg = logstr = orange = state = statestr = NULL;
   
         while ((ch = getopt(argc, argv, cvs_cmd_admin.cmd_opts)) != -1) {          while ((ch = getopt(argc, argv, cvs_cmd_admin.cmd_opts)) != -1) {
                 switch (ch) {                  switch (ch) {
Line 100 
Line 100 
                         verbosity = 0;                          verbosity = 0;
                         break;                          break;
                 case 's':                  case 's':
                           statestr = optarg;
                         break;                          break;
                 case 't':                  case 't':
                         break;                          break;
Line 150 
Line 151 
                 if (orange != NULL)                  if (orange != NULL)
                         cvs_client_send_request("Argument -o%s", orange);                          cvs_client_send_request("Argument -o%s", orange);
   
                   if (statestr != NULL)
                           cvs_client_send_request("Argument -s%s", statestr);
   
                 if (verbosity == 0)                  if (verbosity == 0)
                         cvs_client_send_request("Argument -q");                          cvs_client_send_request("Argument -q");
   
Line 274 
Line 278 
                                 (void)rcs_rev_remove(cf->file_rcs, rdp->rd_num);                                  (void)rcs_rev_remove(cf->file_rcs, rdp->rd_num);
                         }                          }
                 }                  }
           }
   
           if (statestr != NULL) {
                   struct cvs_argvector *sargv;
   
                   sargv = cvs_strsplit(statestr, ":");
                   if (sargv->argv[1] != NULL) {
                           state = xstrdup(sargv->argv[0]);
   
                           if ((logrev = rcsnum_parse(sargv->argv[1])) == NULL) {
                                   cvs_log(LP_ERR, "`%s' bad revision number", statestr);
                                   return;
                           }
                   } else {
                           state = xstrdup(statestr);
                           logrev = rcsnum_alloc();
                           rcsnum_cpy(cf->file_rcs->rf_head, logrev, 0);
                   }
   
                   if (rcs_state_check(state) < 0) {
                           cvs_log(LP_ERR, "invalid state `%s'", state);
                           cvs_argv_destroy(sargv);
                           rcsnum_free(logrev);
                           xfree(state);
                           return;
                   }
   
                   (void)rcs_state_set(cf->file_rcs, logrev, state);
   
                   cvs_argv_destroy(sargv);
                   rcsnum_free(logrev);
                   xfree(state);
         }          }
   
         if (lkmode != RCS_LOCK_INVAL)          if (lkmode != RCS_LOCK_INVAL)

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