static struct {
int use_basename;
int use_label;
+ int verbose;
} cfg = {
0,
0,
+ 0,
};
static inline void usage(const char *argv0) {
LOG("Usage: %s [-b] infile ... [outdir]\n"
" -b : create flat output directory\n"
" -l : use extracted labels in filenames (unreliable!)\n"
+ " -v : be more verbose\n"
, argv0);
exit(EXIT_FAILURE);
}
static inline int config(int argc, char *argv[]) {
int opt;
- while ((opt = getopt(argc, argv, "+:bl")) != -1) {
+ while ((opt = getopt(argc, argv, "+:blv")) != -1) {
switch (opt) {
case 'b':
cfg.use_basename = 1;
case 'l':
cfg.use_label = 1;
break;
+ case 'v':
+ cfg.verbose = 1;
+ break;
default: /* '?' || ':' */
usage(argv[0]);
break;
/* Construct file name from prefix and label or id: */
lab = cfg.use_label ? labl(b, len) : "";
snprintf(of, sizeof of, "%s%06zu%s%s%s", prefix, id, *lab?"_":"", lab, SUFFIX);
- //LOG(" -> %s\n", of);
+ if (cfg.verbose)
+ LOG(": %8zu -> %s\n", len, of);
/* Caveat: This will overwrite any existing file with the same name! */
fd = creat(of, 0644);
if (0 > fd){
rsize = get_ui32(riff + 4) + 8; /* + 'RIFF' + uint32 */
if ((off_t)rsize > remsize)
rsize = remsize;
- LOG("\rEntry %4zu: %8zu ", id, rsize);
+ LOG("\rEntry %4zu", id);
dump(pfx, id, riff, rsize);
++id;
/* Skip 'RIFF'; skipping rsize would be correct, but the size info