|
Lines 216-237
ls_file(const char *name, const struct stat *st, int remote, int si_units)
Link Here
|
| 216 |
int ulen, glen, sz = 0; |
216 |
int ulen, glen, sz = 0; |
| 217 |
struct tm *ltime = localtime(&st->st_mtime); |
217 |
struct tm *ltime = localtime(&st->st_mtime); |
| 218 |
char *user, *group; |
218 |
char *user, *group; |
| 219 |
char buf[1024], mode[11+1], tbuf[12+1], ubuf[11+1], gbuf[11+1]; |
219 |
char buf[1024], lc[8], mode[11+1], tbuf[12+1], ubuf[11+1], gbuf[11+1]; |
| 220 |
char sbuf[FMT_SCALED_STRSIZE]; |
220 |
char sbuf[FMT_SCALED_STRSIZE]; |
| 221 |
time_t now; |
221 |
time_t now; |
| 222 |
|
222 |
|
| 223 |
strmode(st->st_mode, mode); |
223 |
strmode(st->st_mode, mode); |
| 224 |
if (!remote) { |
224 |
if (remote) { |
| 225 |
user = user_from_uid(st->st_uid, 0); |
|
|
| 226 |
} else { |
| 227 |
snprintf(ubuf, sizeof ubuf, "%u", (u_int)st->st_uid); |
225 |
snprintf(ubuf, sizeof ubuf, "%u", (u_int)st->st_uid); |
| 228 |
user = ubuf; |
226 |
user = ubuf; |
| 229 |
} |
|
|
| 230 |
if (!remote) { |
| 231 |
group = group_from_gid(st->st_gid, 0); |
| 232 |
} else { |
| 233 |
snprintf(gbuf, sizeof gbuf, "%u", (u_int)st->st_gid); |
227 |
snprintf(gbuf, sizeof gbuf, "%u", (u_int)st->st_gid); |
| 234 |
group = gbuf; |
228 |
group = gbuf; |
|
|
229 |
strlcpy(lc, "?", sizeof(lc)); |
| 230 |
} else { |
| 231 |
user = user_from_uid(st->st_uid, 0); |
| 232 |
group = group_from_gid(st->st_gid, 0); |
| 233 |
snprintf(lc, sizeof(lc), "%u", (u_int)st->st_nlink); |
| 235 |
} |
234 |
} |
| 236 |
if (ltime != NULL) { |
235 |
if (ltime != NULL) { |
| 237 |
now = time(NULL); |
236 |
now = time(NULL); |
|
Lines 247-258
ls_file(const char *name, const struct stat *st, int remote, int si_units)
Link Here
|
| 247 |
glen = MAXIMUM(strlen(group), 8); |
246 |
glen = MAXIMUM(strlen(group), 8); |
| 248 |
if (si_units) { |
247 |
if (si_units) { |
| 249 |
fmt_scaled((long long)st->st_size, sbuf); |
248 |
fmt_scaled((long long)st->st_size, sbuf); |
| 250 |
snprintf(buf, sizeof buf, "%s %3u %-*s %-*s %8s %s %s", mode, |
249 |
snprintf(buf, sizeof buf, "%s %3s %-*s %-*s %8s %s %s", |
| 251 |
(u_int)st->st_nlink, ulen, user, glen, group, |
250 |
mode, lc, ulen, user, glen, group, |
| 252 |
sbuf, tbuf, name); |
251 |
sbuf, tbuf, name); |
| 253 |
} else { |
252 |
} else { |
| 254 |
snprintf(buf, sizeof buf, "%s %3u %-*s %-*s %8llu %s %s", mode, |
253 |
snprintf(buf, sizeof buf, "%s %3s %-*s %-*s %8llu %s %s", |
| 255 |
(u_int)st->st_nlink, ulen, user, glen, group, |
254 |
mode, lc, ulen, user, glen, group, |
| 256 |
(unsigned long long)st->st_size, tbuf, name); |
255 |
(unsigned long long)st->st_size, tbuf, name); |
| 257 |
} |
256 |
} |
| 258 |
return xstrdup(buf); |
257 |
return xstrdup(buf); |