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