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

Diff for /src/usr.bin/cvs/rcs.c between version 1.108 and 1.109

version 1.108, 2005/12/03 15:31:53 version 1.109, 2005/12/08 18:56:10
Line 308 
Line 308 
         RCSFILE *rfp;          RCSFILE *rfp;
         struct stat st;          struct stat st;
         va_list vap;          va_list vap;
           struct rcs_delta *rdp;
           struct rcs_lock *lkr;
   
         fmode = 0;          fmode = 0;
         flags &= 0xffff;        /* ditch any internal flags */          flags &= 0xffff;        /* ditch any internal flags */
Line 358 
Line 360 
                 return (NULL);                  return (NULL);
         }          }
   
           /* fill in rd_locker */
           TAILQ_FOREACH(lkr, &(rfp->rf_locks), rl_list) {
                   if ((rdp = rcs_findrev(rfp, lkr->rl_num)) == NULL) {
                           rcs_close(rfp);
                           return (NULL);
                   }
   
                   rdp->rd_locker = strdup(lkr->rl_name);
                   if (rdp->rd_locker == NULL) {
                           rcs_close(rfp);
                           return (NULL);
                   }
           }
   
         return (rfp);          return (rfp);
 }  }
   
Line 993 
Line 1009 
   
         /* first look for duplication */          /* first look for duplication */
         TAILQ_FOREACH(lkp, &(file->rf_locks), rl_list) {          TAILQ_FOREACH(lkp, &(file->rf_locks), rl_list) {
                 if (strcmp(lkp->rl_name, user) == 0) {                  if ((strcmp(lkp->rl_name, user) == 0) &&
                       (rcsnum_cmp(rev, lkp->rl_num, 0) == 0)) {
                         rcs_errno = RCS_ERR_DUPENT;                          rcs_errno = RCS_ERR_DUPENT;
                         return (-1);                          return (-1);
                 }                  }
Line 1036 
Line 1053 
  * Returns 0 on success, or -1 on failure.   * Returns 0 on success, or -1 on failure.
  */   */
 int  int
 rcs_lock_remove(RCSFILE *file, const RCSNUM *rev)  rcs_lock_remove(RCSFILE *file, const char *user, RCSNUM *rev)
 {  {
         struct rcs_lock *lkp;          struct rcs_lock *lkp;
   
         TAILQ_FOREACH(lkp, &(file->rf_locks), rl_list)          TAILQ_FOREACH(lkp, &(file->rf_locks), rl_list) {
                 if (rcsnum_cmp(lkp->rl_num, rev, 0) == 0)                  if ((strcmp(lkp->rl_name, user) == 0) &&
                       (rcsnum_cmp(lkp->rl_num, rev, 0) == 0))
                         break;                          break;
           }
   
         if (lkp == NULL) {          if (lkp == NULL) {
                 rcs_errno = RCS_ERR_NOENT;                  rcs_errno = RCS_ERR_NOENT;
Line 2465 
Line 2484 
   
         if (rdp->rd_author != NULL)          if (rdp->rd_author != NULL)
                 free(rdp->rd_author);                  free(rdp->rd_author);
           if (rdp->rd_locker != NULL)
                   free(rdp->rd_locker);
         if (rdp->rd_state != NULL)          if (rdp->rd_state != NULL)
                 free(rdp->rd_state);                  free(rdp->rd_state);
         if (rdp->rd_log != NULL)          if (rdp->rd_log != NULL)

Legend:
Removed from v.1.108  
changed lines
  Added in v.1.109