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

Diff for /src/usr.bin/rcs/ci.c between version 1.53 and 1.54

version 1.53, 2005/10/30 09:46:07 version 1.54, 2005/11/02 20:32:45
Line 71 
Line 71 
 int  int
 checkin_main(int argc, char **argv)  checkin_main(int argc, char **argv)
 {  {
         int found, notlocked, ret;          int found, notlocked, ret, status;
         int i, ch, force, lkmode, interactive, rflag, status, symforce;          int i, ch, flags;
         mode_t fmode;          mode_t fmode;
         time_t date;          time_t date;
         RCSFILE *file;          RCSFILE *file;
Line 88 
Line 88 
         rcs_msg = username = NULL;          rcs_msg = username = NULL;
         state = symbol = NULL;          state = symbol = NULL;
         newrev =  NULL;          newrev =  NULL;
         fmode = force = lkmode = rflag = status = symforce = 0;          fmode = flags = status = 0;
         interactive = 1;  
   
           flags |= INTERACTIVE;
   
         while ((ch = rcs_getopt(argc, argv, "d::f::j:k:l::m:M:N:n:qr::s:u::Vw:")) != -1) {          while ((ch = rcs_getopt(argc, argv, "d::f::j:k:l::m:M::N:n:qr::s:u::Vw:")) != -1) {
                 switch (ch) {                  switch (ch) {
                 case 'd':                  case 'd':
                         if (rcs_optarg == NULL)                          if (rcs_optarg == NULL)
Line 104 
Line 104 
                         break;                          break;
                 case 'f':                  case 'f':
                         rcs_set_rev(rcs_optarg, &newrev);                          rcs_set_rev(rcs_optarg, &newrev);
                         force = 1;                          flags |= FORCE;
                         break;                          break;
                 case 'h':                  case 'h':
                         (usage)();                          (usage)();
                         exit(0);                          exit(0);
                 case 'l':                  case 'l':
                         rcs_set_rev(rcs_optarg, &newrev);                          rcs_set_rev(rcs_optarg, &newrev);
                         lkmode = LOCK_LOCK;                          flags |= CO_LOCK;
                         break;                          break;
                   case 'M':
                           rcs_set_rev(rcs_optarg, &newrev);
                           flags |= CO_REVDATE;
                           break;
                 case 'm':                  case 'm':
                         rcs_msg = rcs_optarg;                          rcs_msg = rcs_optarg;
                         interactive = 0;                          flags &= ~INTERACTIVE;
                         break;                          break;
                 case 'N':                  case 'N':
                         if ((symbol = strdup(rcs_optarg)) == NULL) {                          if ((symbol = strdup(rcs_optarg)) == NULL) {
Line 126 
Line 130 
                                 cvs_log(LP_ERR, "invalid symbol `%s'", symbol);                                  cvs_log(LP_ERR, "invalid symbol `%s'", symbol);
                                 exit(1);                                  exit(1);
                         }                          }
                         symforce = 1;                          flags |= CI_SYMFORCE;
                         break;                          break;
                 case 'n':                  case 'n':
                         if ((symbol = strdup(rcs_optarg)) == NULL) {                          if ((symbol = strdup(rcs_optarg)) == NULL) {
Line 143 
Line 147 
                         break;                          break;
                 case 'r':                  case 'r':
                         rcs_set_rev(rcs_optarg, &newrev);                          rcs_set_rev(rcs_optarg, &newrev);
                         rflag = 1;                          flags |= CI_DEFAULT;
                         break;                          break;
                 case 's':                  case 's':
                         state = rcs_optarg;                          state = rcs_optarg;
Line 154 
Line 158 
                         break;                          break;
                 case 'u':                  case 'u':
                         rcs_set_rev(rcs_optarg, &newrev);                          rcs_set_rev(rcs_optarg, &newrev);
                         lkmode = LOCK_UNLOCK;                          flags |= CO_UNLOCK;
                         break;                          break;
                 case 'V':                  case 'V':
                         printf("%s\n", rcs_version);                          printf("%s\n", rcs_version);
Line 233 
Line 237 
                  * If -f is not specified and there are no differences, tell the                   * If -f is not specified and there are no differences, tell the
                  * user and revert to latest version.                   * user and revert to latest version.
                  */                   */
                 if ((force == 0) && (strlen(deltatext) < 1)) {                  if ((flags & FORCE) && (strlen(deltatext) < 1)) {
                         rcsnum_tostr(frev, rbuf, sizeof(rbuf));                          rcsnum_tostr(frev, rbuf, sizeof(rbuf));
                         cvs_log(LP_WARN,                          cvs_log(LP_WARN,
                             "file is unchanged; reverting to previous revision %s",                              "file is unchanged; reverting to previous revision %s",
                             rbuf);                              rbuf);
                         (void)unlink(argv[i]);                          (void)unlink(argv[i]);
                         if (lkmode != 0)                          if ((flags & CO_LOCK) || (flags & CO_UNLOCK))
                                 checkout_rev(file, frev, argv[i], lkmode,                                  checkout_rev(file, frev, argv[i], flags,
                                     username, 0);                                      username);
                         rcs_lock_remove(file, frev);                          rcs_lock_remove(file, frev);
                         rcs_close(file);                          rcs_close(file);
                         if (verbose == 1)                          if (verbose == 1)
Line 345 
Line 349 
                 if (symbol != NULL) {                  if (symbol != NULL) {
                         if (verbose == 1)                          if (verbose == 1)
                                 printf("symbol: %s\n", symbol);                                  printf("symbol: %s\n", symbol);
                         if (symforce == 1)                          if (flags & CI_SYMFORCE)
                                 rcs_sym_remove(file, symbol);                                  rcs_sym_remove(file, symbol);
                         if ((ret = rcs_sym_add(file, symbol, newrev) == -1)                          if ((ret = rcs_sym_add(file, symbol, newrev) == -1)
                             && (rcs_errno == RCS_ERR_DUPENT)) {                              && (rcs_errno == RCS_ERR_DUPENT)) {
Line 379 
Line 383 
                 /*                  /*
                  * Do checkout if -u or -l are specified.                   * Do checkout if -u or -l are specified.
                  */                   */
                 if ((lkmode != 0) && (rflag == 0))                  if (((flags & CO_LOCK) || (flags & CO_UNLOCK))
                         checkout_rev(file, newrev, argv[i], lkmode, username, 0);                      && !(flags & CI_DEFAULT))
                           checkout_rev(file, newrev, argv[i], flags, username);
   
                 /* File will NOW be synced */                  /* File will NOW be synced */
                 rcs_close(file);                  rcs_close(file);
   
                 if (interactive == 1) {                  if (flags & INTERACTIVE) {
                         free(rcs_msg);                          free(rcs_msg);
                         rcs_msg = NULL;                          rcs_msg = NULL;
                 }                  }

Legend:
Removed from v.1.53  
changed lines
  Added in v.1.54