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

Diff for /src/usr.bin/rcs/ident.c between version 1.18 and 1.19

version 1.18, 2006/04/24 16:16:56 version 1.19, 2006/05/01 23:03:07
Line 107 
Line 107 
 ident_line(FILE *fp)  ident_line(FILE *fp)
 {  {
         int c;          int c;
         char *p, linebuf[1024];          BUF *bp;
           char *keyw;
           size_t len;
   
         p = linebuf;          bp = rcs_buf_alloc(512, BUF_AUTOEXT);
   
         while ((c = getc(fp)) != VALDELIM) {          while ((c = getc(fp)) != VALDELIM) {
                 if (c == EOF && (feof(fp) | ferror(fp)))                  if (c == EOF && (feof(fp) | ferror(fp)))
                         return;                          goto out;
   
                 if (isalpha(c))                  if (isalpha(c))
                         *(p++) = c;                          rcs_buf_putc(bp, c);
                 else                  else
                         return;                          goto out;
         }          }
   
         *(p++) = VALDELIM;          rcs_buf_putc(bp, VALDELIM);
   
         while ((c = getc(fp)) != KEYDELIM) {          while ((c = getc(fp)) != KEYDELIM) {
                 if (c == EOF && (feof(fp) | ferror(fp)))                  if (c == EOF && (feof(fp) | ferror(fp)))
                         return;                          goto out;
   
                 if (c == '\n')                  if (c == '\n')
                         return;                          goto out;
   
                 *(p++) = c;                  rcs_buf_putc(bp, c);
         }          }
   
         if (p[-1] != ' ')          len = rcs_buf_len(bp);
                 return;          if (rcs_buf_getc(bp, len - 1) != ' ')
                   goto out;
   
         /* append trailing KEYDELIM */          /* append trailing KEYDELIM */
         *(p++) = c;          rcs_buf_putc(bp, c);
         *p = '\0';          rcs_buf_putc(bp, '\0');
           keyw = rcs_buf_release(bp);
           bp = NULL;
   
         found++;          found++;
         printf("     %c%s\n", KEYDELIM, linebuf);          printf("     %c%s\n", KEYDELIM, keyw);
   
         return;  out:
           if (bp != NULL)
                   rcs_buf_free(bp);
 }  }
   
 void  void

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.19