version 1.29, 2016/09/12 01:22:38 |
version 1.30, 2017/06/10 06:36:46 |
|
|
int ulen, glen, sz = 0; |
int ulen, glen, sz = 0; |
struct tm *ltime = localtime(&st->st_mtime); |
struct tm *ltime = localtime(&st->st_mtime); |
char *user, *group; |
char *user, *group; |
char buf[1024], mode[11+1], tbuf[12+1], ubuf[11+1], gbuf[11+1]; |
char buf[1024], lc[8], mode[11+1], tbuf[12+1], ubuf[11+1], gbuf[11+1]; |
char sbuf[FMT_SCALED_STRSIZE]; |
char sbuf[FMT_SCALED_STRSIZE]; |
time_t now; |
time_t now; |
|
|
strmode(st->st_mode, mode); |
strmode(st->st_mode, mode); |
if (!remote) { |
if (remote) { |
user = user_from_uid(st->st_uid, 0); |
|
} else { |
|
snprintf(ubuf, sizeof ubuf, "%u", (u_int)st->st_uid); |
snprintf(ubuf, sizeof ubuf, "%u", (u_int)st->st_uid); |
user = ubuf; |
user = ubuf; |
} |
|
if (!remote) { |
|
group = group_from_gid(st->st_gid, 0); |
|
} else { |
|
snprintf(gbuf, sizeof gbuf, "%u", (u_int)st->st_gid); |
snprintf(gbuf, sizeof gbuf, "%u", (u_int)st->st_gid); |
group = gbuf; |
group = gbuf; |
|
strlcpy(lc, "?", sizeof(lc)); |
|
} else { |
|
user = user_from_uid(st->st_uid, 0); |
|
group = group_from_gid(st->st_gid, 0); |
|
snprintf(lc, sizeof(lc), "%u", (u_int)st->st_nlink); |
} |
} |
if (ltime != NULL) { |
if (ltime != NULL) { |
now = time(NULL); |
now = time(NULL); |
|
|
glen = MAXIMUM(strlen(group), 8); |
glen = MAXIMUM(strlen(group), 8); |
if (si_units) { |
if (si_units) { |
fmt_scaled((long long)st->st_size, sbuf); |
fmt_scaled((long long)st->st_size, sbuf); |
snprintf(buf, sizeof buf, "%s %3u %-*s %-*s %8s %s %s", mode, |
snprintf(buf, sizeof buf, "%s %3s %-*s %-*s %8s %s %s", |
(u_int)st->st_nlink, ulen, user, glen, group, |
mode, lc, ulen, user, glen, group, |
sbuf, tbuf, name); |
sbuf, tbuf, name); |
} else { |
} else { |
snprintf(buf, sizeof buf, "%s %3u %-*s %-*s %8llu %s %s", mode, |
snprintf(buf, sizeof buf, "%s %3s %-*s %-*s %8llu %s %s", |
(u_int)st->st_nlink, ulen, user, glen, group, |
mode, lc, ulen, user, glen, group, |
(unsigned long long)st->st_size, tbuf, name); |
(unsigned long long)st->st_size, tbuf, name); |
} |
} |
return xstrdup(buf); |
return xstrdup(buf); |