[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.130 and 1.131

version 1.130, 2006/02/26 16:06:46 version 1.131, 2006/03/05 14:18:56
Line 254 
Line 254 
 static int      rcs_growbuf(RCSFILE *);  static int      rcs_growbuf(RCSFILE *);
 static int      rcs_strprint(const u_char *, size_t, FILE *);  static int      rcs_strprint(const u_char *, size_t, FILE *);
   
 static char*    rcs_expand_keywords(char *, struct rcs_delta *, char *,  static char*   rcs_expand_keywords(char *, struct rcs_delta *, char *,
                     size_t, int);                      size_t, int);
   
 /*  /*
Line 1181 
Line 1181 
 BUF*  BUF*
 rcs_getrev(RCSFILE *rfp, RCSNUM *frev)  rcs_getrev(RCSFILE *rfp, RCSNUM *frev)
 {  {
         int expmode, res;          int res;
         size_t len;          size_t len;
         void *bp;          void *bp;
         RCSNUM *crev, *rev;          RCSNUM *crev, *rev;
         BUF *rbuf;          BUF *rbuf;
         struct rcs_delta *rdp = NULL;          struct rcs_delta *rdp = NULL;
         char *expanded;                         /* XXX */  
   
         if (rfp->rf_head == NULL)          if (rfp->rf_head == NULL)
                 return (NULL);                  return (NULL);
Line 1250 
Line 1249 
         if (cvs_buf_getc(rbuf, cvs_buf_len(rbuf)-1) != '\n'          if (cvs_buf_getc(rbuf, cvs_buf_len(rbuf)-1) != '\n'
             && rbuf != NULL)              && rbuf != NULL)
                 cvs_buf_putc(rbuf, '\n');                  cvs_buf_putc(rbuf, '\n');
         /*  
          * Do keyword expansion if required.  
          */  
         if (rfp->rf_expand != NULL)  
                 expmode = rcs_kwexp_get(rfp);  
         else  
                 expmode = RCS_KWEXP_DEFAULT;  
   
         if ((rbuf != NULL) && !(expmode & RCS_KWEXP_NONE)) {  
                 if ((rdp = rcs_findrev(rfp, rev)) == NULL)  
                         return (rbuf);  
                 cvs_buf_putc(rbuf, '\0');  
                 len = cvs_buf_len(rbuf);  
                 bp = cvs_buf_release(rbuf);  
                 expanded = rcs_expand_keywords(rfp->rf_path, rdp,  
                     bp, len, expmode);  
                 rbuf = cvs_buf_alloc(len, BUF_AUTOEXT);  
                 cvs_buf_set(rbuf, expanded, strlen(expanded), 0);  
                 xfree(expanded);  
         }  
   
         return (rbuf);          return (rbuf);
 }  }
   
Line 2859 
Line 2837 
         return (rdp->rd_state);          return (rdp->rd_state);
 }  }
   
   /*
    * rcs_kwexp_buf()
    *
    * Do keyword expansion on a buffer if necessary
    *
    */
   BUF *
   rcs_kwexp_buf(BUF *bp, RCSFILE *rf, RCSNUM *rev)
   {
           struct rcs_delta *rdp;
           char *expanded, *tbuf;
           int expmode;
           size_t len;
   
           /*
            * Do keyword expansion if required.
            */
           if (rf->rf_expand != NULL)
                   expmode = rcs_kwexp_get(rf);
           else
                   expmode = RCS_KWEXP_DEFAULT;
   
           if (!(expmode & RCS_KWEXP_NONE)) {
                   if ((rdp = rcs_findrev(rf, rev)) == NULL)
                       fatal("could not fetch revision");
                   cvs_buf_putc(bp, '\0');
                   len = cvs_buf_len(bp);
                   tbuf = cvs_buf_release(bp);
                   expanded = rcs_expand_keywords(rf->rf_path, rdp,
                       tbuf, len, expmode);
                   bp = cvs_buf_alloc(len, BUF_AUTOEXT);
                   cvs_buf_set(bp, expanded, strlen(expanded), 0);
                   xfree(expanded);
           }
           return (bp);
   }
   
   
 #if !defined(RCSPROG)  #if !defined(RCSPROG)
   
 static char *month_tab[] = {  static char *month_tab[] = {
Line 2915 
Line 2930 
                             rcsnum_tostr(rev, buf, sizeof(buf)), fpath);                              rcsnum_tostr(rev, buf, sizeof(buf)), fpath);
                         goto out;                          goto out;
                 }                  }
                   bp = rcs_kwexp_buf(bp, rf, rev);
         } else if (type != CHECKOUT_REV_REMOVED) {          } else if (type != CHECKOUT_REV_REMOVED) {
                 va_start(ap, type);                  va_start(ap, type);
                 bp = va_arg(ap, BUF *);                  bp = va_arg(ap, BUF *);

Legend:
Removed from v.1.130  
changed lines
  Added in v.1.131