aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2019-05-21 16:30:49 -0700
committerBruce Hill <bruce@bruce-hill.com>2019-05-21 16:30:49 -0700
commit170fb41568263d63114a8478cf19cadabc028d82 (patch)
treeeda464678b86add2305041a50733ee5e9e085b72
parente2fe374f925277ec2d88848871ec951913488ad2 (diff)
Changed info for symlinks to be about link instead of linked file
-rw-r--r--bb.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/bb.c b/bb.c
index ca908ce..425c6a0 100644
--- a/bb.c
+++ b/bb.c
@@ -207,7 +207,7 @@ static void render(bb_state_t *state)
writez(termfd, "\e[33m");
struct stat info = {0};
- stat(entry->d_fullname, &info);
+ lstat(entry->d_fullname, &info);
{
// Filesize:
@@ -301,8 +301,8 @@ static int compare_bits(void *r, const void *v1, const void *v2)
int diff = -(f1->d_isdir - f2->d_isdir);
if (diff) return -diff; // Always sort dirs before files
struct stat info1, info2;
- stat(f1->d_fullname, &info1);
- stat(f2->d_fullname, &info2);
+ lstat(f1->d_fullname, &info1);
+ lstat(f2->d_fullname, &info2);
return -((info1.st_mode & 0x3FF) - (info2.st_mode & 0x3FF))*sign;
}
@@ -313,8 +313,8 @@ static int compare_size(void *r, const void *v1, const void *v2)
int diff = -(f1->d_isdir - f2->d_isdir);
if (diff) return -diff; // Always sort dirs before files
struct stat info1, info2;
- stat(f1->d_fullname, &info1);
- stat(f2->d_fullname, &info2);
+ lstat(f1->d_fullname, &info1);
+ lstat(f2->d_fullname, &info2);
return -(info1.st_size - info2.st_size)*sign;
}
@@ -325,8 +325,8 @@ static int compare_date(void *r, const void *v1, const void *v2)
int diff = -(f1->d_isdir - f2->d_isdir);
if (diff) return -diff; // Always sort dirs before files
struct stat info1, info2;
- stat(f1->d_fullname, &info1);
- stat(f2->d_fullname, &info2);
+ lstat(f1->d_fullname, &info1);
+ lstat(f2->d_fullname, &info2);
if (info1.st_mtimespec.tv_sec == info2.st_mtimespec.tv_sec)
return -(info1.st_mtimespec.tv_nsec - info2.st_mtimespec.tv_nsec)*sign;
else