diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-07-03 15:08:15 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-07-03 15:17:57 +0200 |
commit | 70dcf39f5926a66d76eb9fde2cbaef4b6a23a9e1 (patch) | |
tree | e4bfefd6c4559ad3abbd89af546099cb56a24040 /include | |
parent | b8d4983147141310383d423b1bcb9d19a490977a (diff) |
tar writer: replace PAX headers with GNU extensions
Some experiments seem to indicate that the various GNU extensions are
more widely supported than their POSIX equivalents[1]. Possibly because
they are easier to implement and possibly because of the wide spread
use of GNU tar.
This commit replaces the PAX writer in the write_tar_header implementation
with a GNU extension based writer.
The writer is also cleaned up by removing all global state. The record
counter is moved outside into the tar2sqfs program and passed in as
function argument.
[1] https://dev.gentoo.org/~mgorny/articles/portability-of-tar-features.html
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include')
-rw-r--r-- | include/tar.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/tar.h b/include/tar.h index ef4fdec..fd701d9 100644 --- a/include/tar.h +++ b/include/tar.h @@ -89,9 +89,12 @@ typedef struct { /* Returns < 0 on failure, > 0 if cannot encode, 0 on success. Prints error/warning messages to stderr. + + The counter is an incremental record counter used if additional + headers need to be generated. */ int write_tar_header(int fd, const struct stat *sb, const char *name, - const char *slink_target); + const char *slink_target, unsigned int counter); /* calcuate and skip the zero padding */ int skip_padding(int fd, uint64_t size); |