diff options
author | Tim Kientzle <kientzle@acm.org> | 2015-09-26 10:16:28 -0700 |
---|---|---|
committer | Tim Kientzle <kientzle@acm.org> | 2015-09-26 10:16:28 -0700 |
commit | b9d0b46eb05b0f1e6c832512c2c6b5d782db58d1 (patch) | |
tree | 46871bb02acdab477ec0bbcfc0735a0edea21d99 | |
parent | 16dbeeb55272b468ee4ddbc2d64ff37b815a6076 (diff) | |
parent | e3d9dfebdfe04e6e718e96f3a7602a27cabcf21e (diff) | |
download | libarchive-b9d0b46eb05b0f1e6c832512c2c6b5d782db58d1.tar.gz |
Merge pull request #606 from betafive/pbarker/minitar
Cleanup error message printing in minitar example
-rw-r--r-- | examples/minitar/minitar.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/examples/minitar/minitar.c b/examples/minitar/minitar.c index 6b8b4f19..81e5e11c 100644 --- a/examples/minitar/minitar.c +++ b/examples/minitar/minitar.c @@ -367,6 +367,7 @@ extract(const char *filename, int do_extract, int flags) exit(r); } for (;;) { + int needcr = 0; r = archive_read_next_header(a, &entry); if (r == ARCHIVE_EOF) break; @@ -377,16 +378,24 @@ extract(const char *filename, int do_extract, int flags) } if (verbose && do_extract) msg("x "); - if (verbose || !do_extract) + if (verbose || !do_extract) { msg(archive_entry_pathname(entry)); + msg(" "); + needcr = 1; + } if (do_extract) { r = archive_write_header(ext, entry); - if (r != ARCHIVE_OK) + if (r != ARCHIVE_OK) { errmsg(archive_error_string(a)); - else - copy_data(a, ext); + needcr = 1; + } + else { + r = copy_data(a, ext); + if (r != ARCHIVE_OK) + needcr = 1; + } } - if (verbose || !do_extract) + if (needcr) msg("\n"); } archive_read_close(a); @@ -404,12 +413,12 @@ copy_data(struct archive *ar, struct archive *aw) for (;;) { r = archive_read_data_block(ar, &buff, &size, &offset); - if (r == ARCHIVE_EOF) { - errmsg(archive_error_string(ar)); + if (r == ARCHIVE_EOF) return (ARCHIVE_OK); - } - if (r != ARCHIVE_OK) + if (r != ARCHIVE_OK) { + errmsg(archive_error_string(ar)); return (r); + } r = archive_write_data_block(aw, buff, size, offset); if (r != ARCHIVE_OK) { errmsg(archive_error_string(ar)); |