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