[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.8 and 1.9

version 1.8, 2005/10/08 14:25:55 version 1.9, 2005/10/08 15:26:47
Line 46 
Line 46 
   
 extern char *__progname;  extern char *__progname;
   
   #define LOCK_LOCK       1
   #define LOCK_UNLOCK     2
   
 static char * checkin_diff_file(RCSFILE *, RCSNUM *, const char *);  static char * checkin_diff_file(RCSFILE *, RCSNUM *, const char *);
 static char * checkin_getlogmsg(char *, char *, RCSNUM *);  static char * checkin_getlogmsg(char *, char *, RCSNUM *);
   
Line 87 
Line 90 
         RCSFILE *file;          RCSFILE *file;
         RCSNUM *frev;          RCSNUM *frev;
         char fpath[MAXPATHLEN];          char fpath[MAXPATHLEN];
         char *rcs_msg, *rev, *filec, *deltatext;          char *rcs_msg, *rev, *filec, *deltatext, *username;
         BUF *bp;          BUF *bp;
   
         lkmode = -1;  
         flags = RCS_RDWR;          flags = RCS_RDWR;
         file = NULL;          file = NULL;
         rcs_msg = rev = NULL;          rcs_msg = rev = NULL;
         fmode = dflag = verbose = 0;          fmode = lkmode = dflag = verbose = 0;
         interactive = 1;          interactive = 1;
   
         while ((ch = getopt(argc, argv, "j:l:M:N:qu:d:r::m:k:V")) != -1) {          if ((username = getlogin()) == NULL) {
                   cvs_log(LP_ERR, "failed to get username");
                   exit(1);
           }
   
           while ((ch = getopt(argc, argv, "j:lM:N:qud:r::m:k:V")) != -1) {
                 switch (ch) {                  switch (ch) {
                 case 'h':                  case 'h':
                         (usage)();                          (usage)();
Line 112 
Line 119 
                 case 'V':                  case 'V':
                         printf("%s\n", rcs_version);                          printf("%s\n", rcs_version);
                         exit(0);                          exit(0);
                   case 'l':
                           lkmode = LOCK_LOCK;
                           break;
                   case 'u':
                           lkmode = LOCK_UNLOCK;
                           break;
                 default:                  default:
                         (usage)();                          (usage)();
                         exit(1);                          exit(1);
Line 203 
Line 216 
   
                 free(deltatext);                  free(deltatext);
                 free(filec);                  free(filec);
                   (void)unlink(argv[i]);
   
                   /*
                    * Do checkout if -u or -l are specified.
                    */
                   if (lkmode != 0) {
                           mode_t mode = 0;
                           if ((bp = rcs_getrev(file, frev)) == NULL) {
                                   cvs_log(LP_ERR, "cannot get revision");
                                   goto err;
                           }
                           if (lkmode == LOCK_LOCK) {
                                   mode = 0644;
                                   if (rcs_lock_add(file, username, frev) < 0) {
                                           if (rcs_errno != RCS_ERR_DUPENT)
                                                   cvs_log(LP_ERR,
                                                       "failed to lock revision");
                                           else
                                                   cvs_log(LP_ERR,
                                                       "you already have a lock");
                                   }
                           } else if (lkmode == LOCK_UNLOCK) {
                                   mode = 0444;
                           }
                           if (cvs_buf_write(bp, argv[i], mode) < 0) {
                                   cvs_log(LP_ERR,
                                       "failed to write revision to file");
                           }
                           cvs_buf_free(bp);
                   }
   err:
                 /* File will NOW be synced */                  /* File will NOW be synced */
                 rcs_close(file);                  rcs_close(file);
   
                 /* XXX:  
                  * Delete the working file - we do not support -u/-l just yet  
                 */  
                 (void)unlink(argv[i]);  
                 if (interactive) {                  if (interactive) {
                         free(rcs_msg);                          free(rcs_msg);
                         rcs_msg = NULL;                          rcs_msg = NULL;
Line 288 
Line 327 
         rcs_msg = NULL;          rcs_msg = NULL;
         tmprev = rcsnum_alloc();          tmprev = rcsnum_alloc();
         rcsnum_cpy(rev, tmprev, 16);          rcsnum_cpy(rev, tmprev, 16);
         rcsnum_tostr(rev, prev, sizeof(prev));          rcsnum_tostr(tmprev, prev, sizeof(prev));
         rcsnum_tostr(rcsnum_inc(tmprev), nrev, sizeof(nrev));          rcsnum_tostr(rcsnum_inc(tmprev), nrev, sizeof(nrev));
         rcsnum_free(tmprev);          rcsnum_free(tmprev);
   
Line 303 
Line 342 
         cvs_printf(">> ");          cvs_printf(">> ");
         for (;;) {          for (;;) {
                 fgets(buf, (int)sizeof(buf), stdin);                  fgets(buf, (int)sizeof(buf), stdin);
                 if (feof(stdin) || ferror(stdin)                  if (feof(stdin) || ferror(stdin) || buf[0] == '.')
                     || buf[0] == '.')  
                         break;                          break;
                 cvs_buf_append(logbuf, buf, strlen(buf));                  cvs_buf_append(logbuf, buf, strlen(buf));
                 cvs_printf(">> ");                  cvs_printf(">> ");

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9