File: colors

package info (click to toggle)
diffutils 1:3.5-3
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 12,384 kB
  • ctags: 6,062
  • sloc: ansic: 70,642; sh: 10,684; perl: 450; makefile: 204; sed: 16
file content (135 lines) | stat: -rwxr-xr-x 2,711 bytes parent folder | download
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#!/bin/sh

. "${srcdir=.}/init.sh"; path_prepend_ ../src

TZ=UTC0
export TZ

fail=0

echo a > a
echo b > b

epoch='1970-01-01 00:00:00'
touch -t 197001010000.00 a b

e=$(printf '\033')
tab=$(printf '\t')

gen_exp_u()
{
    local epoch_plus="$epoch.000000000 +0000"
    local rs=$(printf "$e[${rs}m")
    local hd=$(printf "$e[${hd}m")
    local ad=$(printf "$e[${ad}m")
    local de=$(printf "$e[${de}m")
    local ln=$(printf "$e[${ln}m")
    printf '%s' \
"$hd--- a$tab$epoch_plus
+++ b$tab$epoch_plus
$rs${ln}@@ -1 +1 @@$rs
$de-a$rs
$ad+b$rs
"
}

gen_exp_c()
{
    local epoch_posix_1003_1_2001="Thu Jan  1 00:00:00 1970"
    local rs=$(printf "$e[${rs}m")
    local hd=$(printf "$e[${hd}m")
    local ad=$(printf "$e[${ad}m")
    local de=$(printf "$e[${de}m")
    local ln=$(printf "$e[${ln}m")
    printf '%s' \
"$hd*** a$tab$epoch_posix_1003_1_2001
--- b$tab$epoch_posix_1003_1_2001
$rs***************
$ln*** 1 ****$rs
$de! a$rs
$ln--- 1 ----$rs
$ad! b$rs
"
}

gen_exp_default()
{
    printf '%s' \
"1c1
< a
---
> b
"
}

gen_exp_default_colors()
{
    local rs=$(printf "$e[${rs}m")
    local hd=$(printf "$e[${hd}m")
    local ad=$(printf "$e[${ad}m")
    local de=$(printf "$e[${de}m")
    local ln=$(printf "$e[${ln}m")
    printf '%s' \
"${ln}1c1$rs
$de< a$rs
---
$ad> b$rs
"
}

# Compare with some known outputs

rs=0 hd=1 ad=32 de=31 ln=36

diff --color=auto a b > out
test $? = 1 || fail=1
gen_exp_default > exp || framework_failure_
compare exp out || fail=1

TERM=dumb diff ---presume-output-tty --color=auto a b > out
test $? = 1 || fail=1
gen_exp_default > exp || framework_failure_
compare exp out || fail=1

diff --color=never a b > out
test $? = 1 || fail=1
gen_exp_default > exp || framework_failure_
compare exp out || fail=1

diff a b > out
test $? = 1 || fail=1
gen_exp_default > exp || framework_failure_
compare exp out || fail=1

diff --color=always a b > out
test $? = 1 || fail=1
gen_exp_default_colors > exp || framework_failure_
compare exp out || fail=1

diff -u --color=always a b > out
test $? = 1 || fail=1
gen_exp_u > exp || framework_failure_
compare exp out || fail=1

diff -c --color=always a b > out
test $? = 1 || fail=1
gen_exp_c > exp || framework_failure_
compare exp out || fail=1

rs=0 hd=33 ad=34 de=35 ln=36
diff -u --color=always --palette="rs=0:hd=33:ad=34:de=35:ln=36" a b > out
test $? = 1 || fail=1
gen_exp_u > exp || framework_failure_
compare exp out || fail=1

# Before the fix in http://debbugs.gnu.org/22067,
# this test would trigger an infinite loop bug.
mkfifo fifo
printf '%*s-a' 1000000 > a
printf '%*s-b' 1000000 > b
head -c 10 < fifo > /dev/null &
sleep 1
diff --color=always ---presume-output-tty a b > fifo
test $? = 141 || fail=1

Exit $fail