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

Diff for /src/usr.bin/cdio/cddb.c between version 1.4 and 1.5

version 1.4, 2002/04/18 22:17:04 version 1.5, 2002/12/14 21:28:08
Line 46 
Line 46 
 char *          get_line(FILE *);  char *          get_line(FILE *);
 char *          get_answer(FILE *);  char *          get_answer(FILE *);
 void            verify_track_names(char **, int, struct cd_toc_entry *);  void            verify_track_names(char **, int, struct cd_toc_entry *);
 char *          safe_copy(const char *);  void            safe_copy(char **, const char *);
   
 unsigned long  unsigned long
 cddb_sum(unsigned long v)  cddb_sum(unsigned long v)
Line 99 
Line 99 
 #define MAXSIZE 256  #define MAXSIZE 256
 char copy_buffer[MAXSIZE];  char copy_buffer[MAXSIZE];
   
 char *  void
 safe_copy(const char *title)  safe_copy(char **p, const char *title)
 {  {
         strnvis(copy_buffer, title, MAXSIZE-1, VIS_TAB|VIS_NL);          strnvis(copy_buffer, title, MAXSIZE-1, VIS_TAB|VIS_NL);
         return strdup(copy_buffer);          if (*p == NULL)
                   *p = strdup(copy_buffer);
           else {
                   char *n = malloc(strlen(*p) + strlen(copy_buffer) + 1);
                   if (n == NULL)
                           return;
                   strcpy(n, *p);
                   strcat(n, copy_buffer);
                   free(*p);
                   *p = n;
           }
 }  }
   
 int  int
Line 342 
Line 352 
                         continue;                          continue;
                 if (k >= n)                  if (k >= n)
                         continue;                          continue;
                 result[k] = safe_copy(end);                  safe_copy(&result[k], end);
         }          }
         fprintf(cout, "QUIT\r\n");          fprintf(cout, "QUIT\r\n");
         verify_track_names(result, n, e);          verify_track_names(result, n, e);

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5