summaryrefslogtreecommitdiffstats
path: root/src/grep/tests/word-delim-multibyte
blob: 31190ad67ae95456526fdfec317daff7a8f9bee8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/sh
# exercise \< and \> with multibyte data.
# Derived from https://savannah.gnu.org/bugs/?29537
. "${srcdir=.}/init.sh"; path_prepend_ ../src

require_en_utf8_locale_

e_acute=$(printf '\303\251')
echo "$e_acute" > in || framework_failure_
LC_ALL=en_US.UTF-8
export LC_ALL

fail=0

grep "\\<$e_acute" in > out 2>err || fail=1
compare out in || fail=1
compare /dev/null err || fail=1

grep "$e_acute\\>" in > out 2>err || fail=1
compare out in || fail=1
compare /dev/null err || fail=1

grep -w "$e_acute" in > out 2>err || fail=1
compare out in || fail=1
compare /dev/null err || fail=1

# Also ensure that this works in both the C locale and that multibyte one.
# In the C locale, it failed due to a dfa.c regression in grep-3.2.
echo 123-x > in || framework_failure_

for locale in C en_US.UTF-8; do
  LC_ALL=$locale grep '.\bx' in > out 2>err || fail=1
  compare out in || fail=1
  compare /dev/null err || fail=1
done

# Bug#43255
printf 'a \303\255cone b\n' >in
for flag in '' -i; do
  returns_ 1 env LC_ALL=en_US.UTF-8 grep -w $flag cone in >out 2>err || fail=1
  compare /dev/null out || fail=1
  compare /dev/null err || fail=1
done

Exit $fail