@@ -107,8 +107,9 @@ int cd_get_mode (Cd *cd) | |||
void cd_set_catalog (Cd *cd, char *catalog) | |||
{ | |||
if (cd->catalog) | |||
if (cd->catalog) { | |||
free(cd->catalog); | |||
} | |||
cd->catalog = strdup(catalog); | |||
} | |||
@@ -125,10 +126,11 @@ Cdtext *cd_get_cdtext (Cd *cd) | |||
Track *cd_add_track (Cd *cd) | |||
{ | |||
if (MAXTRACK - 1 > cd->ntrack) | |||
if (MAXTRACK - 1 > cd->ntrack) { | |||
cd->ntrack++; | |||
else | |||
} else { | |||
fprintf(stderr, "too many tracks\n"); | |||
} | |||
/* this will reinit last track if there were too many */ | |||
cd->track[cd->ntrack - 1] = track_init(); | |||
@@ -144,8 +146,9 @@ int cd_get_ntrack (Cd *cd) | |||
Track *cd_get_track (Cd *cd, int i) | |||
{ | |||
if (0 < i <= cd->ntrack) | |||
if (0 < i <= cd->ntrack) { | |||
return cd->track[i - 1]; | |||
} | |||
return NULL; | |||
} | |||
@@ -156,8 +159,9 @@ Track *cd_get_track (Cd *cd, int i) | |||
void track_set_filename (Track *track, char *filename) | |||
{ | |||
if (track->file.name) | |||
if (track->file.name) { | |||
free(track->file.name); | |||
} | |||
track->file.name = strdup(filename); | |||
} | |||
@@ -243,8 +247,9 @@ long track_get_zero_post (Track *track) | |||
} | |||
void track_set_isrc (Track *track, char *isrc) | |||
{ | |||
if (track->isrc) | |||
if (track->isrc) { | |||
free(track->isrc); | |||
} | |||
track->isrc = strdup(isrc); | |||
} | |||
@@ -261,10 +266,11 @@ Cdtext *track_get_cdtext (Track *track) | |||
void track_add_index (Track *track, long index) | |||
{ | |||
if (MAXTRACK - 1 > track->nindex) | |||
if (MAXTRACK - 1 > track->nindex) { | |||
track->nindex++; | |||
else | |||
} else { | |||
fprintf(stderr, "too many indexes\n"); | |||
} | |||
/* this will overwrite last index if there were too many */ | |||
track->index[track->nindex - 1] = index; | |||
@@ -277,8 +283,9 @@ int track_get_nindex (Track *track) | |||
long track_get_index (Track *track, int i) | |||
{ | |||
if (0 <= i < track->nindex) | |||
if (0 <= i < track->nindex) { | |||
return track->index[i]; | |||
} | |||
return -1; | |||
} | |||
@@ -301,8 +308,9 @@ void cd_track_dump (Track *track) | |||
printf("isrc: %s\n", track->isrc); | |||
printf("indexes: %d\n", track->nindex); | |||
for (i = 0; i < track->nindex; ++i) | |||
for (i = 0; i < track->nindex; ++i) { | |||
printf("index %d: %ld\n", i, track->index[i]); | |||
} | |||
if (NULL != track->cdtext) { | |||
printf("cdtext:\n"); | |||
@@ -41,10 +41,11 @@ Cdtext *cdtext_init () | |||
}; | |||
new_cdtext = (Cdtext *) calloc (sizeof (cdtext) / sizeof (Cdtext), sizeof (Cdtext)); | |||
if (NULL == new_cdtext) | |||
if (NULL == new_cdtext) { | |||
fprintf (stderr, "problem allocating memory\n"); | |||
else | |||
} else { | |||
memcpy (new_cdtext, cdtext, sizeof(cdtext)); | |||
} | |||
return new_cdtext; | |||
} | |||
@@ -54,8 +55,9 @@ void cdtext_delete (Cdtext *cdtext) | |||
int i; | |||
if (NULL != cdtext) { | |||
for (i = 0; PTI_END != cdtext[i].pti; i++) | |||
for (i = 0; PTI_END != cdtext[i].pti; i++) { | |||
free (cdtext[i].value); | |||
} | |||
free (cdtext); | |||
} | |||
} | |||
@@ -63,9 +65,11 @@ void cdtext_delete (Cdtext *cdtext) | |||
/* return 0 if there is no cdtext, returns non-zero otherwise */ | |||
int cdtext_is_empty (Cdtext *cdtext) | |||
{ | |||
for (; PTI_END != cdtext->pti; cdtext++) | |||
if (NULL != cdtext->value) | |||
for (; PTI_END != cdtext->pti; cdtext++) { | |||
if (NULL != cdtext->value) { | |||
return -1; | |||
} | |||
} | |||
return 0; | |||
} | |||
@@ -73,20 +77,24 @@ int cdtext_is_empty (Cdtext *cdtext) | |||
/* sets cdtext's pti entry to field */ | |||
void cdtext_set (int pti, char *value, Cdtext *cdtext) | |||
{ | |||
if (NULL != value) /* don't pass NULL to strdup */ | |||
for (; PTI_END != cdtext->pti; cdtext++) | |||
if (NULL != value) { /* don't pass NULL to strdup */ | |||
for (; PTI_END != cdtext->pti; cdtext++) { | |||
if (pti == cdtext->pti) { | |||
free (cdtext->value); | |||
cdtext->value = strdup (value); | |||
} | |||
} | |||
} | |||
} | |||
/* returns value for pti, NULL if pti is not found */ | |||
char *cdtext_get (int pti, Cdtext *cdtext) | |||
{ | |||
for (; PTI_END != cdtext->pti; cdtext++) | |||
if (pti == cdtext->pti) | |||
for (; PTI_END != cdtext->pti; cdtext++) { | |||
if (pti == cdtext->pti) { | |||
return cdtext->value; | |||
} | |||
} | |||
return NULL; | |||
} | |||
@@ -24,8 +24,9 @@ void cue_print (FILE *fp, Cd *cd) | |||
Track *track = NULL; | |||
/* print global information */ | |||
if (NULL != cd_get_catalog(cd)) | |||
if (NULL != cd_get_catalog(cd)) { | |||
fprintf(fp, "CATALOG %s\n", cd_get_catalog(cd)); | |||
} | |||
cue_print_cdtext(cdtext, fp, 0); | |||
@@ -52,10 +53,11 @@ void cue_print_track (FILE *fp, Track *track, int trackno) | |||
fprintf(fp, "FILE \"%s\" ", filename); | |||
/* NOTE: what to do with other formats (MP3, etc)? */ | |||
if (MODE_AUDIO == track_get_mode(track)) | |||
if (MODE_AUDIO == track_get_mode(track)) { | |||
fprintf(fp, "WAVE\n"); | |||
else | |||
} else { | |||
fprintf(fp, "BINARY\n"); | |||
} | |||
} | |||
} | |||
@@ -91,28 +93,35 @@ void cue_print_track (FILE *fp, Track *track, int trackno) | |||
if (0 != track_is_set_flag(track, FLAG_ANY)) { | |||
fprintf(fp, "FLAGS"); | |||
if (0 != track_is_set_flag(track, FLAG_PRE_EMPHASIS)) | |||
if (0 != track_is_set_flag(track, FLAG_PRE_EMPHASIS)) { | |||
fprintf(fp, " PRE"); | |||
if (0 != track_is_set_flag(track, FLAG_COPY_PERMITTED)) | |||
} | |||
if (0 != track_is_set_flag(track, FLAG_COPY_PERMITTED)) { | |||
fprintf(fp, " DCP"); | |||
if (0 != track_is_set_flag(track, FLAG_FOUR_CHANNEL)) | |||
} | |||
if (0 != track_is_set_flag(track, FLAG_FOUR_CHANNEL)) { | |||
fprintf(fp, " 4CH"); | |||
if (0 != track_is_set_flag(track, FLAG_SCMS)) | |||
} | |||
if (0 != track_is_set_flag(track, FLAG_SCMS)) { | |||
fprintf(fp, " SCMS"); | |||
} | |||
fprintf(fp, "\n"); | |||
} | |||
if (NULL != track_get_isrc(track)) | |||
if (NULL != track_get_isrc(track)) { | |||
fprintf(fp, "ISRC %s\n", track_get_isrc(track)); | |||
} | |||
if (0 != track_get_zero_pre(track)) | |||
if (0 != track_get_zero_pre(track)) { | |||
fprintf (fp, "PREGAP %s\n", time_frame_to_mmssff(track_get_zero_pre(track))); | |||
} | |||
/* don't print index 0 if index 1 = 0 */ | |||
if (track_get_index(track, 1) == 0) | |||
if (track_get_index(track, 1) == 0) { | |||
i = 1; | |||
else | |||
} else { | |||
i = 0; | |||
} | |||
for (; i < track_get_nindex(track); i++) { | |||
fprintf(fp, "INDEX %02d ", i); | |||
@@ -122,8 +131,9 @@ void cue_print_track (FILE *fp, Track *track, int trackno) | |||
- track_get_zero_pre(track) , fp); | |||
} | |||
if (0 != track_get_zero_post(track)) | |||
if (0 != track_get_zero_post(track)) { | |||
fprintf (fp, "POSTGAP %s\n", time_frame_to_mmssff(track_get_zero_post(track))); | |||
} | |||
prev_length = track_get_length(track); | |||
} | |||
@@ -16,11 +16,12 @@ Cd *cf_parse (char *name, int *format) | |||
FILE *fp = NULL; | |||
Cd *cd = NULL; | |||
if (UNKNOWN == *format) | |||
if (UNKNOWN == *format) { | |||
if (UNKNOWN == (*format = cf_format_from_suffix(name))) { | |||
fprintf(stderr, "%s: unknown format\n", name); | |||
return NULL; | |||
} | |||
} | |||
if (0 == strcmp("-", name)) { | |||
fp = stdin; | |||
@@ -38,8 +39,9 @@ Cd *cf_parse (char *name, int *format) | |||
break; | |||
} | |||
if(stdin != fp) | |||
if(stdin != fp) { | |||
fclose(fp); | |||
} | |||
return cd; | |||
} | |||
@@ -48,11 +50,12 @@ int cf_print (char *name, int *format, Cd *cd) | |||
{ | |||
FILE *fp = NULL; | |||
if (UNKNOWN == *format) | |||
if (UNKNOWN == *format) { | |||
if (UNKNOWN == (*format = cf_format_from_suffix(name))) { | |||
fprintf(stderr, "%s: unknown format\n", name); | |||
return -1; | |||
} | |||
} | |||
if (0 == strcmp("-", name)) { | |||
fp = stdout; | |||
@@ -70,8 +73,9 @@ int cf_print (char *name, int *format, Cd *cd) | |||
break; | |||
} | |||
if(stdout != fp) | |||
if(stdout != fp) { | |||
fclose(fp); | |||
} | |||
return 0; | |||
} | |||
@@ -80,10 +84,11 @@ int cf_format_from_suffix (char *name) | |||
{ | |||
char *suffix; | |||
if (0 != (suffix = strrchr(name, '.'))) { | |||
if (0 == strcasecmp(".cue", suffix)) | |||
if (0 == strcasecmp(".cue", suffix)) { | |||
return CUE; | |||
else if (0 == strcasecmp(".toc", suffix)) | |||
} else if (0 == strcasecmp(".toc", suffix)) { | |||
return TOC; | |||
} | |||
} | |||
return UNKNOWN; | |||
@@ -31,8 +31,9 @@ void toc_print (FILE *fp, Cd *cd) | |||
break; | |||
} | |||
if (NULL != cd_get_catalog(cd)) | |||
if (NULL != cd_get_catalog(cd)) { | |||
fprintf(fp, "CATALOG \"%s\"\n", cd_get_catalog(cd)); | |||
} | |||
if(0 != cdtext_is_empty(cdtext)) { | |||
fprintf(fp, "CD_TEXT {\n"); | |||
@@ -81,15 +82,19 @@ void toc_print_track (FILE *fp, Track *track) | |||
} | |||
fprintf(fp, "\n"); | |||
if (0 != track_is_set_flag(track, FLAG_PRE_EMPHASIS)) | |||
if (0 != track_is_set_flag(track, FLAG_PRE_EMPHASIS)) { | |||
fprintf(fp, "PRE_EMPHASIS\n"); | |||
if (0 != track_is_set_flag(track, FLAG_COPY_PERMITTED)) | |||
} | |||
if (0 != track_is_set_flag(track, FLAG_COPY_PERMITTED)) { | |||
fprintf(fp, "COPY\n"); | |||
if (0 != track_is_set_flag(track, FLAG_FOUR_CHANNEL)) | |||
} | |||
if (0 != track_is_set_flag(track, FLAG_FOUR_CHANNEL)) { | |||
fprintf(fp, "FOUR_CHANNEL_AUDIO\n"); | |||
} | |||
if (NULL != track_get_isrc(track)) | |||
if (NULL != track_get_isrc(track)) { | |||
fprintf(fp, "ISRC \"%s\"\n", track_get_isrc(track)); | |||
} | |||
if (0 != cdtext_is_empty(cdtext)) { | |||
fprintf(fp, "CD_TEXT {\n"); | |||
@@ -107,12 +112,14 @@ void toc_print_track (FILE *fp, Track *track) | |||
fprintf(fp, "FILE "); | |||
fprintf(fp, "\"%s\" ", track_get_filename(track)); | |||
if (0 == track_get_start(track)) | |||
if (0 == track_get_start(track)) { | |||
fprintf(fp, "0"); | |||
else | |||
} else { | |||
fprintf(fp, "%s", time_frame_to_mmssff(track_get_start(track))); | |||
if (0 != track_get_length(track)) | |||
} | |||
if (0 != track_get_length(track)) { | |||
fprintf(fp, " %s", time_frame_to_mmssff(track_get_length(track))); | |||
} | |||
fprintf(fp, "\n"); | |||
if (0 != track_get_zero_post(track)) { | |||
@@ -120,7 +127,7 @@ void toc_print_track (FILE *fp, Track *track) | |||
fprintf(fp, "%s", time_frame_to_mmssff(track_get_zero_post(track))); | |||
fprintf(fp, "\n"); | |||
} | |||
if (track_get_index(track, 1) != 0) { | |||
fprintf(fp, "START "); | |||
fprintf(fp, "%s\n", time_frame_to_mmssff(track_get_index(track, 1))); | |||
@@ -52,8 +52,9 @@ void print_m_ss_ff (long frame) | |||
void print_breakpoint (long b) | |||
{ | |||
/* do not print zero breakpoints */ | |||
if (0 != b) | |||
if (0 != b) { | |||
print_m_ss_ff(b); | |||
} | |||
} | |||
void print_breaks (Cd *cd, int gaps) | |||
@@ -129,13 +130,14 @@ int main (int argc, char **argv) | |||
usage(0); | |||
break; | |||
case 'i': | |||
if (0 == strcmp("cue", optarg)) | |||
if (0 == strcmp("cue", optarg)) { | |||
format = CUE; | |||
else if (0 == strcmp("toc", optarg)) | |||
} else if (0 == strcmp("toc", optarg)) { | |||
format = TOC; | |||
else | |||
} else { | |||
fprintf(stderr, "%s: illegal format `%s'\n", progname, optarg); | |||
usage(1); | |||
} | |||
break; | |||
case 'a': | |||
gaps = APPEND; | |||
@@ -155,8 +157,9 @@ int main (int argc, char **argv) | |||
if (optind == argc) { | |||
breaks("-", format, gaps); | |||
} else { | |||
for (; optind < argc; optind++) | |||
for (; optind < argc; optind++) { | |||
breaks(argv[optind], format, gaps); | |||
} | |||
} | |||
return 0; | |||
@@ -83,22 +83,24 @@ int main (int argc, char **argv) | |||
usage(0); | |||
break; | |||
case 'i': | |||
if (0 == strcmp("cue", optarg)) | |||
if (0 == strcmp("cue", optarg)) { | |||
iformat = CUE; | |||
else if (0 == strcmp("toc", optarg)) | |||
} else if (0 == strcmp("toc", optarg)) { | |||
iformat = TOC; | |||
else | |||
} else { | |||
fprintf(stderr, "%s: illegal format `%s'\n", progname, optarg); | |||
usage(1); | |||
} | |||
break; | |||
case 'o': | |||
if (0 == strcmp("cue", optarg)) | |||
if (0 == strcmp("cue", optarg)) { | |||
oformat = CUE; | |||
else if (0 == strcmp("toc", optarg)) | |||
} else if (0 == strcmp("toc", optarg)) { | |||
oformat = TOC; | |||
else | |||
} else { | |||
fprintf(stderr, "%s: illegal format `%s'\n", progname, optarg); | |||
usage(1); | |||
} | |||
break; | |||
default: | |||
usage(1); | |||
@@ -245,10 +245,11 @@ void print_conv (char *start, int length, Cd *cd, int trackno) | |||
conv[length] = '\0'; | |||
/* conversion character */ | |||
if (0 == trackno) | |||
if (0 == trackno) { | |||
disc_field(conv, length, cd, &value); | |||
else | |||
} else { | |||
track_field(conv, length, cd, trackno, &value); | |||
} | |||
c = conv + length - 1; | |||
@@ -445,13 +446,14 @@ int main (int argc, char **argv) | |||
usage(0); | |||
break; | |||
case 'i': | |||
if (0 == strcmp("cue", optarg)) | |||
if (0 == strcmp("cue", optarg)) { | |||
format = CUE; | |||
else if (0 == strcmp("toc", optarg)) | |||
} else if (0 == strcmp("toc", optarg)) { | |||
format = TOC; | |||
else | |||
} else { | |||
fprintf(stderr, "%s: illegal format `%s'\n", progname, optarg); | |||
usage(1); | |||
} | |||
break; | |||
case 'n': | |||
trackno = atoi(optarg); | |||
@@ -474,11 +476,13 @@ int main (int argc, char **argv) | |||
d_template = strdup(D_TEMPLATE); | |||
t_template = strdup(T_TEMPLATE); | |||
} else { | |||
if (NULL == d_template) | |||
if (NULL == d_template) { | |||
d_template = strdup(""); | |||
} | |||
if (NULL == t_template) | |||
if (NULL == t_template) { | |||
t_template = strdup(""); | |||
} | |||
} | |||
/* translate escape sequences */ | |||
@@ -488,8 +492,9 @@ int main (int argc, char **argv) | |||
if (optind == argc) { | |||
info("-", format, trackno, d_template, t_template); | |||
} else { | |||
for (; optind < argc; optind++) | |||
for (; optind < argc; optind++) { | |||
info(argv[optind], format, trackno, d_template, t_template); | |||
} | |||
} | |||
return 0; | |||