Files
coreutils/tests/ls/sort-width-option.sh
Carl Edquist 751ad58e00 ls: add --sort=width option to sort by file name width
This helps identify the outliers for long filenames, and also produces
a more compact display of columns when listing a directory with many
entries of various widths.

* src/ls.c (sort_type, sort_types, sort_width): New sort_width sort
type.
(sort_args): Add "width" sort arg.
(cmp_width, fileinfo_width): New sort function and helper for file name
width.
(quote_name_width): Add function prototype declaration.
(usage): Document --sort=width option.
* doc/coreutils.texi: Document --sort=width option.
* tests/ls/sort-width-option.sh: New test for --sort=width option.
* tests/local.mk: Reference new test.
* NEWS: Mention the new feature.
2021-04-11 14:58:38 +01:00

42 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
# Exercise the --sort=width option.
# Copyright (C) 2021 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 3 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, see <https://www.gnu.org/licenses/>.
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
print_ver_ ls
mkdir subdir || framework_failure_
touch subdir/aaaaa || framework_failure_
touch subdir/bbb || framework_failure_
touch subdir/cccc || framework_failure_
touch subdir/d || framework_failure_
touch subdir/zz || framework_failure_
ls --sort=width subdir > out || fail=1
cat <<\EOF > exp || framework_failure_
d
zz
bbb
cccc
aaaaa
EOF
compare exp out || fail=1
Exit $fail