diff options
author | Aaron Crane <arc@aaroncrane.co.uk> | 2014-08-03 21:54:14 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2014-08-04 18:58:23 -0400 |
commit | b6edbf6b900d2dcc1fb0365c173cada8fa917db3 (patch) | |
tree | 32980604ef1ef2d14d9af0ea348fdf43e07116cf /debugfs/dump.c | |
parent | 850fe1aca7927da19ce3606487b91be48953df03 (diff) | |
download | e2fsprogs-b6edbf6b900d2dcc1fb0365c173cada8fa917db3.tar.gz |
debugfs: teach rdump to take multiple source arguments
[ modified to update man page by tytso ]
Signed-off-by: Aaron Crane <arc@aaroncrane.co.uk>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'debugfs/dump.c')
-rw-r--r-- | debugfs/dump.c | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/debugfs/dump.c b/debugfs/dump.c index 0fa14b64..8d978864 100644 --- a/debugfs/dump.c +++ b/debugfs/dump.c @@ -326,18 +326,12 @@ static int rdump_dirent(struct ext2_dir_entry *dirent, void do_rdump(int argc, char **argv) { - ext2_ino_t ino; - struct ext2_inode inode; struct stat st; - char *arg, *dest_dir, *basename; - - if (common_args_process(argc, argv, 3, 3, "rdump", - "<directory> <native directory>", 0)) - return; + char *dest_dir; + int i; - arg = argv[1]; - ino = string_to_inode(arg); - if (!ino) + if (common_args_process(argc, argv, 3, INT_MAX, "rdump", + "<directory>... <native directory>", 0)) return; /* Pull out last argument */ @@ -354,16 +348,24 @@ void do_rdump(int argc, char **argv) return; } - if (debugfs_read_inode(ino, &inode, arg)) - return; + for (i = 1; i < argc; i++) { + char *arg = argv[i], *basename; + struct ext2_inode inode; + ext2_ino_t ino = string_to_inode(arg); + if (!ino) + continue; - basename = strrchr(arg, '/'); - if (basename) - basename++; - else - basename = arg; + if (debugfs_read_inode(ino, &inode, arg)) + continue; - rdump_inode(ino, &inode, basename, dest_dir); + basename = strrchr(arg, '/'); + if (basename) + basename++; + else + basename = arg; + + rdump_inode(ino, &inode, basename, dest_dir); + } } void do_cat(int argc, char **argv) |