|
|
|
|
@@ -719,8 +719,7 @@ xheader_decode (struct tar_stat_info *st)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
decg (void *data, char const *keyword, char const *value,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
decg (void *data, char const *keyword, char const *value, idx_t size)
|
|
|
|
|
{
|
|
|
|
|
struct keyword_list **kwl = data;
|
|
|
|
|
struct xhdr_tab const *tab = locate_handler (keyword);
|
|
|
|
|
@@ -1090,24 +1089,24 @@ decode_num (uintmax_t *num, char const *arg, uintmax_t maxval,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
dummy_coder (MAYBE_UNUSED struct tar_stat_info const *st,
|
|
|
|
|
MAYBE_UNUSED char const *keyword,
|
|
|
|
|
MAYBE_UNUSED struct xheader *xhdr,
|
|
|
|
|
MAYBE_UNUSED void const *data)
|
|
|
|
|
dummy_coder (struct tar_stat_info const *UNNAMED (st),
|
|
|
|
|
char const *UNNAMED (keyword),
|
|
|
|
|
struct xheader *UNNAMED (xhdr),
|
|
|
|
|
void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
dummy_decoder (MAYBE_UNUSED struct tar_stat_info *st,
|
|
|
|
|
MAYBE_UNUSED char const *keyword,
|
|
|
|
|
MAYBE_UNUSED char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
dummy_decoder (struct tar_stat_info *UNNAMED (st),
|
|
|
|
|
char const *UNNAMED (keyword),
|
|
|
|
|
char const *UNNAMED (arg),
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
atime_coder (struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
code_time (st->atime, keyword, xhdr);
|
|
|
|
|
}
|
|
|
|
|
@@ -1116,7 +1115,7 @@ static void
|
|
|
|
|
atime_decoder (struct tar_stat_info *st,
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
struct timespec ts;
|
|
|
|
|
if (decode_time (&ts, arg, keyword))
|
|
|
|
|
@@ -1125,7 +1124,7 @@ atime_decoder (struct tar_stat_info *st,
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
gid_coder (struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
code_signed_num (st->stat.st_gid, keyword,
|
|
|
|
|
TYPE_MINIMUM (gid_t), TYPE_MAXIMUM (gid_t), xhdr);
|
|
|
|
|
@@ -1135,7 +1134,7 @@ static void
|
|
|
|
|
gid_decoder (struct tar_stat_info *st,
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
intmax_t u;
|
|
|
|
|
if (decode_signed_num (&u, arg, TYPE_MINIMUM (gid_t),
|
|
|
|
|
@@ -1145,39 +1144,39 @@ gid_decoder (struct tar_stat_info *st,
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
gname_coder (struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
code_string (st->gname, keyword, xhdr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
gname_decoder (struct tar_stat_info *st,
|
|
|
|
|
MAYBE_UNUSED char const *keyword,
|
|
|
|
|
char const *UNNAMED (keyword),
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
decode_string (&st->gname, arg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
linkpath_coder (struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
code_string (st->link_name, keyword, xhdr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
linkpath_decoder (struct tar_stat_info *st,
|
|
|
|
|
MAYBE_UNUSED char const *keyword,
|
|
|
|
|
char const *UNNAMED (keyword),
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
decode_string (&st->link_name, arg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
ctime_coder (struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
code_time (st->ctime, keyword, xhdr);
|
|
|
|
|
}
|
|
|
|
|
@@ -1186,7 +1185,7 @@ static void
|
|
|
|
|
ctime_decoder (struct tar_stat_info *st,
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
struct timespec ts;
|
|
|
|
|
if (decode_time (&ts, arg, keyword))
|
|
|
|
|
@@ -1205,7 +1204,7 @@ static void
|
|
|
|
|
mtime_decoder (struct tar_stat_info *st,
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
struct timespec ts;
|
|
|
|
|
if (decode_time (&ts, arg, keyword))
|
|
|
|
|
@@ -1214,7 +1213,7 @@ mtime_decoder (struct tar_stat_info *st,
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
path_coder (struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
code_string (st->file_name, keyword, xhdr);
|
|
|
|
|
}
|
|
|
|
|
@@ -1233,9 +1232,9 @@ raw_path_decoder (struct tar_stat_info *st, char const *arg)
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
path_decoder (struct tar_stat_info *st,
|
|
|
|
|
MAYBE_UNUSED char const *keyword,
|
|
|
|
|
char const *UNNAMED (keyword),
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
if (! st->sparse_name_done)
|
|
|
|
|
raw_path_decoder (st, arg);
|
|
|
|
|
@@ -1243,9 +1242,9 @@ path_decoder (struct tar_stat_info *st,
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sparse_path_decoder (struct tar_stat_info *st,
|
|
|
|
|
MAYBE_UNUSED char const *keyword,
|
|
|
|
|
char const *UNNAMED (keyword),
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
st->sparse_name_done = true;
|
|
|
|
|
raw_path_decoder (st, arg);
|
|
|
|
|
@@ -1253,7 +1252,7 @@ sparse_path_decoder (struct tar_stat_info *st,
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
size_coder (struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
code_num (st->stat.st_size, keyword, xhdr);
|
|
|
|
|
}
|
|
|
|
|
@@ -1262,7 +1261,7 @@ static void
|
|
|
|
|
size_decoder (struct tar_stat_info *st,
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
uintmax_t u;
|
|
|
|
|
if (decode_num (&u, arg, TYPE_MAXIMUM (off_t), keyword))
|
|
|
|
|
@@ -1271,7 +1270,7 @@ size_decoder (struct tar_stat_info *st,
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
uid_coder (struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
code_signed_num (st->stat.st_uid, keyword,
|
|
|
|
|
TYPE_MINIMUM (uid_t), TYPE_MAXIMUM (uid_t), xhdr);
|
|
|
|
|
@@ -1281,7 +1280,7 @@ static void
|
|
|
|
|
uid_decoder (struct tar_stat_info *st,
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
intmax_t u;
|
|
|
|
|
if (decode_signed_num (&u, arg, TYPE_MINIMUM (uid_t),
|
|
|
|
|
@@ -1291,16 +1290,16 @@ uid_decoder (struct tar_stat_info *st,
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
uname_coder (struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
code_string (st->uname, keyword, xhdr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
uname_decoder (struct tar_stat_info *st,
|
|
|
|
|
MAYBE_UNUSED char const *keyword,
|
|
|
|
|
char const *UNNAMED (keyword),
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
decode_string (&st->uname, arg);
|
|
|
|
|
}
|
|
|
|
|
@@ -1316,7 +1315,7 @@ static void
|
|
|
|
|
sparse_size_decoder (struct tar_stat_info *st,
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
uintmax_t u;
|
|
|
|
|
if (decode_num (&u, arg, TYPE_MAXIMUM (off_t), keyword))
|
|
|
|
|
@@ -1329,7 +1328,7 @@ sparse_size_decoder (struct tar_stat_info *st,
|
|
|
|
|
static void
|
|
|
|
|
sparse_numblocks_coder (struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
struct xheader *xhdr,
|
|
|
|
|
MAYBE_UNUSED void const *data)
|
|
|
|
|
void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
code_num (st->sparse_map_avail, keyword, xhdr);
|
|
|
|
|
}
|
|
|
|
|
@@ -1338,7 +1337,7 @@ static void
|
|
|
|
|
sparse_numblocks_decoder (struct tar_stat_info *st,
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
uintmax_t u;
|
|
|
|
|
if (decode_num (&u, arg, SIZE_MAX, keyword))
|
|
|
|
|
@@ -1361,7 +1360,7 @@ static void
|
|
|
|
|
sparse_offset_decoder (struct tar_stat_info *st,
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
uintmax_t u;
|
|
|
|
|
if (decode_num (&u, arg, TYPE_MAXIMUM (off_t), keyword))
|
|
|
|
|
@@ -1386,7 +1385,7 @@ static void
|
|
|
|
|
sparse_numbytes_decoder (struct tar_stat_info *st,
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
uintmax_t u;
|
|
|
|
|
if (decode_num (&u, arg, TYPE_MAXIMUM (off_t), keyword))
|
|
|
|
|
@@ -1403,7 +1402,7 @@ static void
|
|
|
|
|
sparse_map_decoder (struct tar_stat_info *st,
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
bool offset = true;
|
|
|
|
|
struct sp_array e;
|
|
|
|
|
@@ -1472,7 +1471,7 @@ sparse_map_decoder (struct tar_stat_info *st,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
dumpdir_coder (MAYBE_UNUSED struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
dumpdir_coder (struct tar_stat_info const *UNNAMED (st), char const *keyword,
|
|
|
|
|
struct xheader *xhdr, void const *data)
|
|
|
|
|
{
|
|
|
|
|
xheader_print_n (xhdr, keyword, data, dumpdir_size (data));
|
|
|
|
|
@@ -1480,7 +1479,7 @@ dumpdir_coder (MAYBE_UNUSED struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
dumpdir_decoder (struct tar_stat_info *st,
|
|
|
|
|
MAYBE_UNUSED char const *keyword,
|
|
|
|
|
char const *UNNAMED (keyword),
|
|
|
|
|
char const *arg,
|
|
|
|
|
idx_t size)
|
|
|
|
|
{
|
|
|
|
|
@@ -1489,7 +1488,7 @@ dumpdir_decoder (struct tar_stat_info *st,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
volume_label_coder (MAYBE_UNUSED struct tar_stat_info const *st,
|
|
|
|
|
volume_label_coder (struct tar_stat_info const *UNNAMED (st),
|
|
|
|
|
char const *keyword,
|
|
|
|
|
struct xheader *xhdr, void const *data)
|
|
|
|
|
{
|
|
|
|
|
@@ -1497,16 +1496,16 @@ volume_label_coder (MAYBE_UNUSED struct tar_stat_info const *st,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
volume_label_decoder (MAYBE_UNUSED struct tar_stat_info *st,
|
|
|
|
|
MAYBE_UNUSED char const *keyword,
|
|
|
|
|
volume_label_decoder (struct tar_stat_info *UNNAMED (st),
|
|
|
|
|
char const *UNNAMED (keyword),
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
decode_string (&volume_label, arg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
volume_size_coder (MAYBE_UNUSED struct tar_stat_info const *st,
|
|
|
|
|
volume_size_coder (struct tar_stat_info const *UNNAMED (st),
|
|
|
|
|
char const *keyword,
|
|
|
|
|
struct xheader *xhdr, void const *data)
|
|
|
|
|
{
|
|
|
|
|
@@ -1515,9 +1514,9 @@ volume_size_coder (MAYBE_UNUSED struct tar_stat_info const *st,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
volume_size_decoder (MAYBE_UNUSED struct tar_stat_info *st,
|
|
|
|
|
volume_size_decoder (struct tar_stat_info *UNNAMED (st),
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg, MAYBE_UNUSED idx_t size)
|
|
|
|
|
char const *arg, idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
uintmax_t u;
|
|
|
|
|
if (decode_num (&u, arg, TYPE_MAXIMUM (off_t), keyword))
|
|
|
|
|
@@ -1526,7 +1525,7 @@ volume_size_decoder (MAYBE_UNUSED struct tar_stat_info *st,
|
|
|
|
|
|
|
|
|
|
/* FIXME: Merge with volume_size_coder */
|
|
|
|
|
static void
|
|
|
|
|
volume_offset_coder (MAYBE_UNUSED struct tar_stat_info const *st,
|
|
|
|
|
volume_offset_coder (struct tar_stat_info const *UNNAMED (st),
|
|
|
|
|
char const *keyword,
|
|
|
|
|
struct xheader *xhdr, void const *data)
|
|
|
|
|
{
|
|
|
|
|
@@ -1535,9 +1534,9 @@ volume_offset_coder (MAYBE_UNUSED struct tar_stat_info const *st,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
volume_offset_decoder (MAYBE_UNUSED struct tar_stat_info *st,
|
|
|
|
|
volume_offset_decoder (struct tar_stat_info *UNNAMED (st),
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg, MAYBE_UNUSED idx_t size)
|
|
|
|
|
char const *arg, idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
uintmax_t u;
|
|
|
|
|
if (decode_num (&u, arg, TYPE_MAXIMUM (off_t), keyword))
|
|
|
|
|
@@ -1545,39 +1544,39 @@ volume_offset_decoder (MAYBE_UNUSED struct tar_stat_info *st,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
volume_filename_decoder (MAYBE_UNUSED struct tar_stat_info *st,
|
|
|
|
|
MAYBE_UNUSED char const *keyword,
|
|
|
|
|
volume_filename_decoder (struct tar_stat_info *UNNAMED (st),
|
|
|
|
|
char const *UNNAMED (keyword),
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
decode_string (&continued_file_name, arg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
xattr_selinux_coder (struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
code_string (st->cntx_name, keyword, xhdr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
xattr_selinux_decoder (struct tar_stat_info *st,
|
|
|
|
|
MAYBE_UNUSED char const *keyword, char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
char const *UNNAMED (keyword), char const *arg,
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
decode_string (&st->cntx_name, arg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
xattr_acls_a_coder (struct tar_stat_info const *st , char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
xheader_print_n (xhdr, keyword, st->acls_a_ptr, st->acls_a_len);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
xattr_acls_a_decoder (struct tar_stat_info *st,
|
|
|
|
|
MAYBE_UNUSED char const *keyword,
|
|
|
|
|
char const *UNNAMED (keyword),
|
|
|
|
|
char const *arg, idx_t size)
|
|
|
|
|
{
|
|
|
|
|
st->acls_a_ptr = xmemdup (arg, size + 1);
|
|
|
|
|
@@ -1586,14 +1585,14 @@ xattr_acls_a_decoder (struct tar_stat_info *st,
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
xattr_acls_d_coder (struct tar_stat_info const *st , char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
xheader_print_n (xhdr, keyword, st->acls_d_ptr, st->acls_d_len);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
xattr_acls_d_decoder (struct tar_stat_info *st,
|
|
|
|
|
MAYBE_UNUSED char const *keyword, char const *arg,
|
|
|
|
|
char const *UNNAMED (keyword), char const *arg,
|
|
|
|
|
idx_t size)
|
|
|
|
|
{
|
|
|
|
|
st->acls_d_ptr = xmemdup (arg, size + 1);
|
|
|
|
|
@@ -1629,7 +1628,7 @@ xattr_decoder (struct tar_stat_info *st,
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sparse_major_coder (struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
code_num (st->sparse_major, keyword, xhdr);
|
|
|
|
|
}
|
|
|
|
|
@@ -1638,7 +1637,7 @@ static void
|
|
|
|
|
sparse_major_decoder (struct tar_stat_info *st,
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
uintmax_t u;
|
|
|
|
|
if (decode_num (&u, arg, INTMAX_MAX, keyword))
|
|
|
|
|
@@ -1647,7 +1646,7 @@ sparse_major_decoder (struct tar_stat_info *st,
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
sparse_minor_coder (struct tar_stat_info const *st, char const *keyword,
|
|
|
|
|
struct xheader *xhdr, MAYBE_UNUSED void const *data)
|
|
|
|
|
struct xheader *xhdr, void const *UNNAMED (data))
|
|
|
|
|
{
|
|
|
|
|
code_num (st->sparse_minor, keyword, xhdr);
|
|
|
|
|
}
|
|
|
|
|
@@ -1656,7 +1655,7 @@ static void
|
|
|
|
|
sparse_minor_decoder (struct tar_stat_info *st,
|
|
|
|
|
char const *keyword,
|
|
|
|
|
char const *arg,
|
|
|
|
|
MAYBE_UNUSED idx_t size)
|
|
|
|
|
idx_t UNNAMED (size))
|
|
|
|
|
{
|
|
|
|
|
uintmax_t u;
|
|
|
|
|
if (decode_num (&u, arg, INTMAX_MAX, keyword))
|
|
|
|
|
|