diff options
author | Pali Rohár <pali.rohar@gmail.com> | 2014-09-29 00:48:13 +0200 |
---|---|---|
committer | Pali Rohár <pali.rohar@gmail.com> | 2014-09-29 00:48:13 +0200 |
commit | 84fc04f647d425a38f3e5f0a77def3ab346520bd (patch) | |
tree | 3bf1befab38ad7602e66071f1ff13e13c55f4be0 /src/main.c | |
parent | 03c6c3899f6b2e1b9f3ff08817ef491eee99286f (diff) | |
download | 0xFFFF-84fc04f647d425a38f3e5f0a77def3ab346520bd.tar.bz2 |
main: Implement -t (filter by type) for -e (dump images)
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 18 |
1 files changed, 15 insertions, 3 deletions
@@ -1177,9 +1177,21 @@ int main(int argc, char **argv) { buf[0] = 0; } - for ( i = 0; i < IMAGE_COUNT; ++i ) - if ( image_tmp_name(i) ) - dev_dump_image(dev, i, image_tmp_name(i)); + if ( filter_type ) { + enum image_type type = image_type_from_string(filter_type_arg); + if ( ! type || ! image_tmp_name(type) ) { + ERROR("Specified unknown image type for filtering: %s", filter_type_arg); + ret = 1; + goto clean; + } + ret = dev_dump_image(dev, type, image_tmp_name(type)); + if ( ret != 0 ) + goto clean; + } else { + for ( i = 0; i < IMAGE_COUNT; ++i ) + if ( image_tmp_name(i) ) + dev_dump_image(dev, i, image_tmp_name(i)); + } if ( buf[0] ) if ( chdir(buf) < 0 ) |