1#!/bin/sh
2# test quote alignment combinations
3
4# Copyright (C) 2016-2023 Free Software Foundation, Inc.
5
6# This program is free software: you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation, either version 3 of the License, or
9# (at your option) any later version.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15
16# You should have received a copy of the GNU General Public License
17# along with this program.  If not, see <https://www.gnu.org/licenses/>.
18
19. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
20print_ver_ ls
21
22dirname='dir:name'
23mkdir "$dirname" || framework_failure_
24touch "$dirname/a b" "$dirname/c.foo" || framework_failure_
25
26e=$(printf '\033')
27color_code='0;31;42'
28c_pre="$e[0m$e[${color_code}m"
29c_post="$e[0m"
30
31cat <<EOF >exp || framework_failure_
32'$dirname':
33'a b'  ${c_pre}c.foo${c_post}
34'$dirname':
35'a b'   ${c_pre}c.foo${c_post}
36'$dirname':
37'a b'
38 ${c_pre}c.foo${c_post}
39'$dirname':
40'a b'
41${c_pre}c.foo${c_post}
42'$dirname':
43'a b', ${c_pre}c.foo${c_post}
44'$dirname':
45'a b'   ${c_pre}c.foo${c_post}
46
47EOF
48
49for opt in '-w0 -x' '-x' '-og' '-1' '-m' '-C'; do
50  env TERM=xterm LS_COLORS="*.foo=$color_code" TIME_STYLE=+T \
51    ls $opt -R --quoting=shell-escape --color=always "$dirname" >> out || fail=1
52done
53
54# Append a newline, to accommodate less-capable versions of sed.
55echo >> out || framework_failure_
56
57# Strip possible varying portion of long format
58sed -e 's/.*T //' -e '/^total/d' out > k && mv k out
59
60compare exp out || fail=1
61
62Exit $fail
63