8 |
|
|
9 |
void FAST_FUNC header_verbose_list(const file_header_t *file_header) |
void FAST_FUNC header_verbose_list(const file_header_t *file_header) |
10 |
{ |
{ |
11 |
struct tm *mtime = localtime(&(file_header->mtime)); |
struct tm tm_time; |
12 |
|
struct tm *ptm = &tm_time; //localtime(&file_header->mtime); |
13 |
|
|
14 |
#if ENABLE_FEATURE_TAR_UNAME_GNAME |
#if ENABLE_FEATURE_TAR_UNAME_GNAME |
15 |
char uid[8]; |
char uid[sizeof(int)*3 + 2]; |
16 |
char gid[8]; |
/*char gid[sizeof(int)*3 + 2];*/ |
17 |
char *user = file_header->uname; |
char *user; |
18 |
char *group = file_header->gname; |
char *group; |
19 |
|
|
20 |
|
localtime_r(&file_header->mtime, ptm); |
21 |
|
|
22 |
|
user = file_header->tar__uname; |
23 |
if (user == NULL) { |
if (user == NULL) { |
24 |
snprintf(uid, sizeof(uid), "%u", (unsigned)file_header->uid); |
sprintf(uid, "%u", (unsigned)file_header->uid); |
25 |
user = uid; |
user = uid; |
26 |
} |
} |
27 |
|
group = file_header->tar__gname; |
28 |
if (group == NULL) { |
if (group == NULL) { |
29 |
snprintf(gid, sizeof(gid), "%u", (unsigned)file_header->gid); |
/*sprintf(gid, "%u", (unsigned)file_header->gid);*/ |
30 |
group = gid; |
group = utoa(file_header->gid); |
31 |
} |
} |
32 |
printf("%s %s/%s %9u %4u-%02u-%02u %02u:%02u:%02u %s", |
printf("%s %s/%s %9"OFF_FMT"u %4u-%02u-%02u %02u:%02u:%02u %s", |
33 |
bb_mode_string(file_header->mode), |
bb_mode_string(file_header->mode), |
34 |
user, |
user, |
35 |
group, |
group, |
36 |
(unsigned int) file_header->size, |
file_header->size, |
37 |
1900 + mtime->tm_year, |
1900 + ptm->tm_year, |
38 |
1 + mtime->tm_mon, |
1 + ptm->tm_mon, |
39 |
mtime->tm_mday, |
ptm->tm_mday, |
40 |
mtime->tm_hour, |
ptm->tm_hour, |
41 |
mtime->tm_min, |
ptm->tm_min, |
42 |
mtime->tm_sec, |
ptm->tm_sec, |
43 |
file_header->name); |
file_header->name); |
44 |
|
|
45 |
#else /* !FEATURE_TAR_UNAME_GNAME */ |
#else /* !FEATURE_TAR_UNAME_GNAME */ |
46 |
printf("%s %d/%d %9"OFF_FMT"u %4u-%02u-%02u %02u:%02u:%02u %s", |
|
47 |
|
localtime_r(&file_header->mtime, ptm); |
48 |
|
|
49 |
|
printf("%s %u/%u %9"OFF_FMT"u %4u-%02u-%02u %02u:%02u:%02u %s", |
50 |
bb_mode_string(file_header->mode), |
bb_mode_string(file_header->mode), |
51 |
file_header->uid, |
(unsigned)file_header->uid, |
52 |
file_header->gid, |
(unsigned)file_header->gid, |
53 |
file_header->size, |
file_header->size, |
54 |
1900 + mtime->tm_year, |
1900 + ptm->tm_year, |
55 |
1 + mtime->tm_mon, |
1 + ptm->tm_mon, |
56 |
mtime->tm_mday, |
ptm->tm_mday, |
57 |
mtime->tm_hour, |
ptm->tm_hour, |
58 |
mtime->tm_min, |
ptm->tm_min, |
59 |
mtime->tm_sec, |
ptm->tm_sec, |
60 |
file_header->name); |
file_header->name); |
61 |
|
|
62 |
#endif /* FEATURE_TAR_UNAME_GNAME */ |
#endif /* FEATURE_TAR_UNAME_GNAME */ |
63 |
|
|
64 |
if (file_header->link_target) { |
if (file_header->link_target) { |