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

Diff for /src/usr.bin/cvs/history.c between version 1.36 and 1.37

version 1.36, 2008/06/10 15:55:54 version 1.37, 2008/06/10 16:32:35
Line 61 
Line 61 
 void  void
 cvs_history_add(int type, struct cvs_file *cf, const char *argument)  cvs_history_add(int type, struct cvs_file *cf, const char *argument)
 {  {
           BUF *buf;
         FILE *fp;          FILE *fp;
         char *cwd;          char *cwd, *rev;
         char revbuf[CVS_REV_BUFSZ], repo[MAXPATHLEN], fpath[MAXPATHLEN];          char revbuf[CVS_REV_BUFSZ], repo[MAXPATHLEN], fpath[MAXPATHLEN];
           char timebuf[CVS_TIME_BUFSZ];
           struct tm datetm;
   
         if (cvs_nolog == 1)          if (cvs_nolog == 1)
                 return;                  return;
Line 94 
Line 97 
   
         /* construct revision field */          /* construct revision field */
         revbuf[0] = '\0';          revbuf[0] = '\0';
         if (cvs_cmdop != CVS_OP_CHECKOUT && cvs_cmdop != CVS_OP_EXPORT) {          rev = revbuf;
                 switch (type) {          switch (type) {
                 case CVS_HISTORY_TAG:          case CVS_HISTORY_TAG:
                         strlcpy(revbuf, argument, sizeof(revbuf));                  strlcpy(revbuf, argument, sizeof(revbuf));
                         break;                  break;
                 case CVS_HISTORY_CHECKOUT:          case CVS_HISTORY_CHECKOUT:
                 case CVS_HISTORY_EXPORT:          case CVS_HISTORY_EXPORT:
                         /* copy TAG or DATE to revbuf */                  /*
                         break;                   * cvs_buf_alloc uses xcalloc(), so we are safe even
                 case CVS_HISTORY_UPDATE_MERGED:                   * if neither cvs_specified_tag nor cvs_specified_date
                 case CVS_HISTORY_UPDATE_MERGED_ERR:                   * have been supplied.
                 case CVS_HISTORY_COMMIT_MODIFIED:                   */
                 case CVS_HISTORY_COMMIT_ADDED:                  buf = cvs_buf_alloc(128);
                 case CVS_HISTORY_COMMIT_REMOVED:                  if (cvs_specified_tag != NULL) {
                 case CVS_HISTORY_UPDATE_CO:                          cvs_buf_puts(buf, cvs_specified_tag);
                         rcsnum_tostr(cf->file_rcs->rf_head,                          if (cvs_specified_date != -1)
                             revbuf, sizeof(revbuf));                                  cvs_buf_putc(buf, ':');
                         break;  
                 }                  }
                   if (cvs_specified_date != -1) {
                           gmtime_r(&cvs_specified_date, &datetm);
                           strftime(timebuf, sizeof(timebuf),
                               "%Y.%m.%d.%H.%M.%S", &datetm);
                           cvs_buf_puts(buf, timebuf);
                   }
                   rev = cvs_buf_release(buf);
                   break;
           case CVS_HISTORY_UPDATE_MERGED:
           case CVS_HISTORY_UPDATE_MERGED_ERR:
           case CVS_HISTORY_COMMIT_MODIFIED:
           case CVS_HISTORY_COMMIT_ADDED:
           case CVS_HISTORY_COMMIT_REMOVED:
           case CVS_HISTORY_UPDATE_CO:
                   rcsnum_tostr(cf->file_rcs->rf_head,
                           revbuf, sizeof(revbuf));
                   break;
         }          }
   
         (void)xsnprintf(fpath, sizeof(fpath), "%s/%s",          (void)xsnprintf(fpath, sizeof(fpath), "%s/%s",
Line 121 
Line 140 
         if ((fp = fopen(fpath, "a")) != NULL) {          if ((fp = fopen(fpath, "a")) != NULL) {
                 fprintf(fp, "%c%x|%s|%s|%s|%s|%s\n",                  fprintf(fp, "%c%x|%s|%s|%s|%s|%s\n",
                     historytab[type], time(NULL), getlogin(), cwd, repo,                      historytab[type], time(NULL), getlogin(), cwd, repo,
                     revbuf, (cf != NULL) ? cf->file_name : argument);                      rev, (cf != NULL) ? cf->file_name : argument);
   
                 (void)fclose(fp);                  (void)fclose(fp);
         } else {          } else {
                 cvs_log(LP_ERR, "failed to add entry to history file");                  cvs_log(LP_ERR, "failed to add entry to history file");
         }          }
   
           if (rev != revbuf)
                   xfree(rev);
         if (cvs_server_active != 1)          if (cvs_server_active != 1)
                 xfree(cwd);                  xfree(cwd);
 }  }

Legend:
Removed from v.1.36  
changed lines
  Added in v.1.37