aboutsummaryrefslogtreecommitdiff
path: root/coreutils/stat.c
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2023-01-23 10:40:57 +0000
committerRon Yorston <rmy@pobox.com>2023-01-23 10:40:57 +0000
commit1a88782fd33db4ad3531b63c9fb744c64282fee2 (patch)
tree65e826528ab2f57ebfb12c74e9b13898157de783 /coreutils/stat.c
parentafbf21c45d2e6a710aa27cb2784a540bb3ceedea (diff)
downloadbusybox-w32-1a88782fd33db4ad3531b63c9fb744c64282fee2.tar.gz
busybox-w32-1a88782fd33db4ad3531b63c9fb744c64282fee2.tar.bz2
busybox-w32-1a88782fd33db4ad3531b63c9fb744c64282fee2.zip
win32: only count subdirectories if necessary
Commit 7fb95a2a5 (win32: try to get link count for directories) allowed stat(2) to report accurate values of st_nlink for directories. There are only a couple of places in busybox-w32 where these values are required. Disable counting of subdirectories by default and only enable it when necessary. Microsoft kindly provide directories to test edge cases like this: C:/Windows/WinSxS (contains many subdirectories) C:/Windows/WinSxS/Manifests (contains many files) Adds 84-112 bytes.
Diffstat (limited to 'coreutils/stat.c')
-rw-r--r--coreutils/stat.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/coreutils/stat.c b/coreutils/stat.c
index 940ade89a..dc20c2356 100644
--- a/coreutils/stat.c
+++ b/coreutils/stat.c
@@ -785,6 +785,10 @@ int stat_main(int argc UNUSED_PARAM, char **argv)
785 selinux_or_die(); 785 selinux_or_die();
786 } 786 }
787#endif 787#endif
788#if ENABLE_FEATURE_EXTRA_FILE_DATA
789 /* Enable accurate link counts for directories */
790 count_subdirs(NULL);
791#endif
788 ok = 1; 792 ok = 1;
789 argv += optind; 793 argv += optind;
790 for (i = 0; argv[i]; ++i) 794 for (i = 0; argv[i]; ++i)