Added preliminary track number switch to cueprint.
This commit is contained in:
@@ -46,12 +46,13 @@ char *progname;
|
||||
void usage (int status)
|
||||
{
|
||||
if (0 == status) {
|
||||
fprintf(stdout, "%s: usage: cueprint [-h] [-i cue|toc] [-d TEMPLATE] [-t TEMPLATE] [file...]\n", progname);
|
||||
fprintf(stdout, "%s: usage: cueprint [-h] [-i cue|toc] [-n TRACKNUMBER] [-d TEMPLATE] [-t TEMPLATE] [file...]\n", progname);
|
||||
fputs("\
|
||||
\n\
|
||||
OPTIONS\n\
|
||||
-h print usage\n\
|
||||
-i cue|toc set format of file(s)\n\
|
||||
-n TRACKNUMBER only print track information for track TRACKNUMBER\n\
|
||||
-d TEMPLATE set disc template (see TEMPLATE EXPANSION)\n\
|
||||
-t TEMPLATE set track template (see TEMPLATE EXPANSION)\n\
|
||||
\n\
|
||||
@@ -333,20 +334,29 @@ void cd_printf (char *format, Cd *cd, int trackno)
|
||||
}
|
||||
}
|
||||
|
||||
int info (char *name, int format, char *d_template, char *t_template)
|
||||
int info (char *name, int format, int trackno, char *d_template, char *t_template)
|
||||
{
|
||||
Cd *cd = NULL;
|
||||
int i; /* track number */
|
||||
int ntrack;
|
||||
|
||||
if (NULL == (cd = cf_parse(name, &format))) {
|
||||
fprintf(stderr, "%s: input file error\n", name);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ntrack = cd_get_ntrack(cd);
|
||||
|
||||
cd_printf(d_template, cd, 0);
|
||||
|
||||
for (i = 1; i <= cd_get_ntrack(cd); i++) {
|
||||
cd_printf(t_template, cd, i);
|
||||
if (0 == trackno) {
|
||||
for (trackno = 1; trackno <= ntrack; trackno++) {
|
||||
cd_printf(t_template, cd, ntrack);
|
||||
}
|
||||
} else if (0 < trackno || ntrack >= trackno) {
|
||||
cd_printf(t_template, cd, ntrack);
|
||||
} else {
|
||||
fprintf(stderr, "%s: track number out of range\n", progname);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -355,6 +365,7 @@ int info (char *name, int format, char *d_template, char *t_template)
|
||||
int main (int argc, char **argv)
|
||||
{
|
||||
int format = UNKNOWN;
|
||||
int trackno = 0; /* track number (0 = all tracks) */
|
||||
char *d_template = NULL; /* disc template */
|
||||
char *t_template = NULL; /* track template */
|
||||
/* getopt () variables */
|
||||
@@ -364,7 +375,7 @@ int main (int argc, char **argv)
|
||||
|
||||
progname = *argv;
|
||||
|
||||
while (-1 != (c = getopt(argc, argv, "hi:d:t:"))) {
|
||||
while (-1 != (c = getopt(argc, argv, "hi:n:d:t:"))) {
|
||||
switch (c) {
|
||||
case 'h':
|
||||
usage(0);
|
||||
@@ -376,6 +387,9 @@ int main (int argc, char **argv)
|
||||
format = TOC;
|
||||
break;
|
||||
/* TODO add track selection */
|
||||
case 'n':
|
||||
trackno = atoi(optarg);
|
||||
break;
|
||||
case 'd':
|
||||
d_template = optarg;
|
||||
break;
|
||||
@@ -401,10 +415,10 @@ int main (int argc, char **argv)
|
||||
}
|
||||
|
||||
if (optind == argc) {
|
||||
info("-", format, d_template, t_template);
|
||||
info("-", format, trackno, d_template, t_template);
|
||||
} else {
|
||||
for (; optind < argc; optind++)
|
||||
info(argv[optind], format, d_template, t_template);
|
||||
info(argv[optind], format, trackno, d_template, t_template);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user