diff --git a/coreutils.changes b/coreutils.changes index 981f203..26db73c 100644 --- a/coreutils.changes +++ b/coreutils.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Apr 2 11:17:36 CEST 2007 - schwab@suse.de + +- Fix ls -x. + ------------------------------------------------------------------- Fri Mar 23 17:03:38 CET 2007 - schwab@suse.de diff --git a/coreutils.spec b/coreutils.spec index bd8d10f..10bccf2 100644 --- a/coreutils.spec +++ b/coreutils.spec @@ -21,7 +21,7 @@ Obsoletes: libselinux <= 1.23.11-3 libselinux-32bit >= 9 libselinux-64bit = Autoreqprov: on PreReq: %{install_info_prereq} Version: 6.9 -Release: 1 +Release: 4 Summary: GNU Core Utilities Source: coreutils-%{version}.tar.bz2 Source1: su.pamd @@ -33,6 +33,7 @@ Patch4: coreutils-5.3.0-i18n-0.1.patch Patch5: i18n-uninit.diff Patch6: i18n-infloop.diff Patch8: coreutils-sysinfo.diff +Patch9: ls-x.diff Patch11: i18n-monthsort.diff Patch16: invalid-ids.diff Patch17: no-no.diff @@ -99,6 +100,8 @@ Authors: %patch6 %patch %patch8 -p1 +%patch9 -p1 +chmod +x tests/ls/x-option %patch11 %patch16 -p1 %patch17 @@ -171,6 +174,8 @@ rm -rf $RPM_BUILD_ROOT %dir %{_prefix}/share/locale/*/LC_TIME %changelog +* Mon Apr 02 2007 - schwab@suse.de +- Fix ls -x. * Fri Mar 23 2007 - schwab@suse.de - Update to coreutils 6.9. ** Bug fixes diff --git a/ls-x.diff b/ls-x.diff new file mode 100644 index 0000000..2969992 --- /dev/null +++ b/ls-x.diff @@ -0,0 +1,137 @@ +From nobody Mon Apr 2 10:35:09 2007 +From: Paul Eggert +Subject: Re: regression in `ls -x` introduced between 6.7 and 6.8 +To: Mike Frysinger +Cc: bug-coreutils@gnu.org +Date: Sun, 01 Apr 2007 20:31:14 -0700 + +Mike Frysinger writes: + +>> Do you observe a similar problem with ls -m? +> +> nope + +OK, thanks, that helped me to narrow it down. Here is a patch. + +2007-04-01 Paul Eggert + + * src/ls.c (print_horizontal): Fix bug reported by Mike Frysinger: + ls -x DIR would sometimes output the wrong string in place of the + first entry. + * tests/ls/x-option: New file. + * tests/ls/Makefile.am (TESTS): Add x-option. + +diff --git a/src/ls.c b/src/ls.c +index b33146c..abb0a26 100644 +--- a/src/ls.c ++++ b/src/ls.c +@@ -4074,16 +4074,16 @@ print_horizontal (void) + size_t pos = 0; + size_t cols = calculate_columns (false); + struct column_info const *line_fmt = &column_info[cols - 1]; +- size_t name_length = length_of_file_name_and_frills (cwd_file); ++ struct fileinfo const *f = sorted_file[0]; ++ size_t name_length = length_of_file_name_and_frills (f); + size_t max_name_length = line_fmt->col_arr[0]; + + /* Print first entry. */ +- print_file_name_and_frills (cwd_file); ++ print_file_name_and_frills (f); + + /* Now the rest. */ + for (filesno = 1; filesno < cwd_n_used; ++filesno) + { +- struct fileinfo const *f; + size_t col = filesno % cols; + + if (col == 0) +diff --git a/tests/ls/Makefile.am b/tests/ls/Makefile.am +index 461ba07..2b6fb90 100644 +--- a/tests/ls/Makefile.am ++++ b/tests/ls/Makefile.am +@@ -24,7 +24,7 @@ TESTS = \ + stat-dtype \ + inode dangle file-type recursive dired infloop \ + rt-1 time-1 symlink-slash follow-slink no-arg m-option \ +- stat-vs-dirent ++ stat-vs-dirent x-option + + EXTRA_DIST = $(TESTS) + TESTS_ENVIRONMENT = \ +diff --git a/tests/ls/x-option b/tests/ls/x-option +new file mode 100755 +index 0000000..44556df +--- /dev/null ++++ b/tests/ls/x-option +@@ -0,0 +1,59 @@ ++#!/bin/sh ++# Exercise the -x option. ++ ++# Copyright (C) 2007 Free Software Foundation, Inc. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++# 02110-1301, USA. ++ ++if test "$VERBOSE" = yes; then ++ set -x ++ ls --version ++fi ++ ++. $srcdir/../envvar-check ++. $srcdir/../lang-default ++ ++pwd=`pwd` ++t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$ ++trap 'status=$?; cd "$pwd" && chmod -R u+rwx $t0 && rm -rf $t0 && exit $status' 0 ++trap '(exit $?); exit $?' 1 2 13 15 ++ ++framework_failure=0 ++mkdir -p $tmp || framework_failure=1 ++cd $tmp || framework_failure=1 ++mkdir subdir || framework_failure=1 ++touch subdir/b || framework_failure=1 ++touch subdir/a || framework_failure=1 ++ ++if test $framework_failure = 1; then ++ echo "$0: failure in testing framework" 1>&2 ++ (exit 1); exit 1 ++fi ++ ++fail=0 ++ ++# Coreutils 6.8 and 6.9 would output this in the wrong order. ++ls -x subdir > out || fail=1 ++ls -rx subdir >> out || fail=1 ++cat <<\EOF > exp || fail=1 ++a b ++b a ++EOF ++ ++cmp out exp || fail=1 ++test $fail = 1 && diff out exp 2> /dev/null ++ ++(exit $fail); exit $fail +M ChangeLog +M src/ls.c +M tests/ls/Makefile.am +A tests/ls/x-option +Committed as dd35c3cab3ada1120a14b1292b0ac5c60357afb3 + + +_______________________________________________ +Bug-coreutils mailing list +Bug-coreutils@gnu.org +http://lists.gnu.org/mailman/listinfo/bug-coreutils +