From 8c3b9aaaab11be9d0fe24a72ebb16e171ca22125 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Thu, 1 Nov 2018 21:46:50 -0400 Subject: Print device major/minor numbers for -ls --- eval.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 15dddf4..b3d85f2 100644 --- a/eval.c +++ b/eval.c @@ -658,9 +658,17 @@ bool eval_fls(const struct expr *expr, struct eval_state *state) { } } - uintmax_t size = statbuf->size; - if (fprintf(file, " %8ju", size) < 0) { - goto error; + if (ftwbuf->typeflag & (BFTW_BLK | BFTW_CHR)) { + int ma = bfs_major(statbuf->rdev); + int mi = bfs_minor(statbuf->rdev); + if (fprintf(file, " %3d, %3d", ma, mi) < 0) { + goto error; + } + } else { + uintmax_t size = statbuf->size; + if (fprintf(file, " %8ju", size) < 0) { + goto error; + } } time_t time = statbuf->mtime.tv_sec; -- cgit v1.2.3