Commit | Line | Data |
---|---|---|
dc53ebfa MW |
1 | #include "lib.h" |
2 | ||
9b86c33f MW |
3 | static void usage(FILE *fp) |
4 | { fprintf(fp, "usage: %s [-IV] DEVICE ...\n", prog); } | |
dc53ebfa MW |
5 | |
6 | int main(int argc, char *argv[]) | |
7 | { | |
9b86c33f MW |
8 | char id[MAXIDSZ]; |
9 | int i, opt, st = 0; | |
10 | unsigned f = 0, dif = 0; | |
d23998cb | 11 | static dvd_reader_t *dvd = 0; |
dc53ebfa MW |
12 | #define f_bogus 1u |
13 | ||
14 | set_prog(argv[0]); | |
15 | for (;;) { | |
9b86c33f | 16 | opt = getopt(argc, argv, "hIV"); if (opt < 0) break; |
dc53ebfa MW |
17 | switch (opt) { |
18 | case 'h': usage(stderr); exit(0); | |
9b86c33f MW |
19 | case 'I': dif |= DIF_MUSTIFOHASH; break; |
20 | case 'V': dif |= DIF_MUSTVOLINF; break; | |
dc53ebfa MW |
21 | default: f |= f_bogus; break; |
22 | } | |
23 | } | |
9b86c33f | 24 | if (argc - optind < 1) f |= f_bogus; |
dc53ebfa MW |
25 | if (f&f_bogus) { usage(stderr); exit(2); } |
26 | setlocale(LC_ALL, ""); | |
27 | progress_init(&progress); | |
28 | ||
9b86c33f | 29 | for (i = optind; i < argc; i++) { |
d23998cb MW |
30 | if (open_dvd(argv[i], O_RDONLY, 0, &dvd) || |
31 | dvd_id(id, dvd, dif, argv[i])) | |
9b86c33f MW |
32 | st = 2; |
33 | else { | |
34 | if (argc - optind > 1) printf("%s: ", argv[i]); | |
35 | printf("%s\n", id); | |
36 | } | |
d23998cb | 37 | DVDClose(dvd); dvd = 0; |
dc53ebfa MW |
38 | } |
39 | ||
dc53ebfa | 40 | progress_free(&progress); |
9b86c33f | 41 | return (st); |
dc53ebfa | 42 | } |