From 2481699c0df1e6924612f6574e69245b73b43d5b Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Aug 04 2008 12:41:29 +0000 Subject: ls -U1 now uses constant memory --- diff --git a/coreutils-6.12-ls-constant_mem.patch b/coreutils-6.12-ls-constant_mem.patch new file mode 100644 index 0000000..7643ee9 --- /dev/null +++ b/coreutils-6.12-ls-constant_mem.patch @@ -0,0 +1,38 @@ +From: Kamil Dudka +Date: Wed, 30 Jul 2008 12:31:50 +0000 (+0200) +Subject: ls -U1 now uses constant memory +X-Git-Url: http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=commitdiff_plain;h=8d974b00fbbc2025de63e1e6d54827648fefa1c4 + +ls -U1 now uses constant memory + +When printing one name per line and not sorting, ls now uses +constant memory per directory, no matter how many files are in +the directory. +* ls.c (print_dir): Print each file name immediately, when possible. +--- + +diff --git a/src/ls.c b/src/ls.c +index 4b69f7d..a661c06 100644 +--- a/src/ls.c ++++ b/src/ls.c +@@ -2402,6 +2402,20 @@ print_dir (char const *name, char const *realname, bool command_line_arg) + #endif + total_blocks += gobble_file (next->d_name, type, D_INO (next), + false, name); ++ ++ /* In this narrow case, print out each name right away, so ++ ls uses constant memory while processing the entries of ++ this directory. Useful when there are many (millions) ++ of entries in a directory. */ ++ if (format == one_per_line && sort_type == sort_none) ++ { ++ /* We must call sort_files in spite of ++ "sort_type == sort_none" for its initialization ++ of the sorted_file vector. */ ++ sort_files (); ++ print_current_files (); ++ clear_files (); ++ } + } + } + else if (errno != 0) diff --git a/coreutils.spec b/coreutils.spec index 2d36447..ba70832 100644 --- a/coreutils.spec +++ b/coreutils.spec @@ -1,7 +1,7 @@ Summary: The GNU core utilities: a set of tools commonly used in shell scripts Name: coreutils Version: 6.12 -Release: 7%{?dist} +Release: 8%{?dist} License: GPLv3+ Group: System Environment/Base Url: http://www.gnu.org/software/coreutils/ @@ -28,6 +28,7 @@ Patch101: coreutils-6.10-manpages.patch #Patch102: coreutils-6.10-longoptions.patch Patch103: coreutils-6.11-sparc-shafix.patch Patch104: coreutils-6.12-utimenstouchcp.patch +Patch105: coreutils-6.12-dd-fullblock.patch # sh-utils Patch703: sh-utils-2.0.11-dateman.patch @@ -54,8 +55,10 @@ Patch916: coreutils-getfacl-exit-code.patch Patch950: coreutils-selinux.patch Patch951: coreutils-selinuxmanpages.patch Patch952: coreutils-6.11-matchpathconinstall.patch -Patch953: coreutils-6.12-dd-fullblock.patch + +# ls enhancements (must be applied after SELINUX patches) Patch954: coreutils-6.12-ls-libcap.patch +Patch955: coreutils-6.12-ls-constant_mem.patch BuildRequires: libselinux-devel >= 1.25.6-1 BuildRequires: libacl-devel @@ -115,6 +118,7 @@ cd %name-%version #%patch102 -p1 -b .longopt %patch103 -p1 -b .sparc %patch104 -p1 -b .utimensat +%patch105 -p1 -b .dd-fullblock # sh-utils %patch703 -p1 -b .dateman @@ -137,8 +141,10 @@ cd %name-%version #SELinux %patch950 -p1 -b .selinux %patch951 -p1 -b .selinuxman -%patch953 -p1 -b .dd-fullblock + +# ls enhancements (must be applied after SELINUX patches) %patch954 -p1 -b .ls-libcap +%patch955 -p1 -b .ls-constant_mem chmod a+x tests/misc/sort-mb-tests @@ -323,6 +329,9 @@ fi /sbin/runuser %changelog +* Mon Aug 04 2008 Kamil Dudka - 6.12-8 +- ls -U1 now uses constant memory + * Wed Jul 24 2008 Kamil Dudka - 6.12-7 - dd: iflag=fullblock now read full blocks if possible (#431997, #449263)