From 9c2fcf3aeae6cd112a1e5b5e8374a03cf5217c9b Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 20 Jul 2020 07:18:08 -0700 Subject: distat: bugfix: use lstat. * sysif.c (dirstat): Call lstat_wrap, rather than stat_wrap. This function must report about the directory entry itself, not about what that entry points to if it happens to be a symlink. The d-type member of the dirent structure representing a symlink must be set to dt-lnk. * txr.1: Updated. --- sysif.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sysif.c') diff --git a/sysif.c b/sysif.c index 019b66a4..5830ffc0 100644 --- a/sysif.c +++ b/sysif.c @@ -2327,7 +2327,7 @@ static val dirstat(val dirent, val dir_path, val stat_opt) val self = lit("dirstat"); val name = slot(dirent, name_s); val path = if3(null_or_missing_p(dir_path), name, path_cat(dir_path, name)); - val stat = stat_wrap(path, stat_opt); + val stat = lstat_wrap(path, stat_opt); val mode = slot(stat, mode_s); if (mode) { -- cgit v1.2.3