summaryrefslogtreecommitdiff
path: root/tests/ed-style
blob: 504e6e52769e75bc761bb361d835dc0f0b0d3362 (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
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
# Copyright (C) 2018 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# in any medium, are permitted without royalty provided the copyright
# notice and this notice are preserved.

. $srcdir/test-lib.sh

require cat
use_local_patch
use_tmpdir

# ==============================================================

cat > ed1.diff <<EOF
0a
foo
.
EOF

check 'patch -e foo -i ed1.diff' <<EOF
EOF

check 'cat foo' <<EOF
foo
EOF

cat > ed2.diff <<EOF
1337a
r !echo bar
,p
EOF

check 'patch -e foo -i ed2.diff > /dev/null 2> /dev/null || echo "Status: $?"' <<EOF
Status: 2
EOF

check 'cat foo' <<EOF
foo
EOF

# Test the case where one ed-style patch modifies several files

cat > ed3.diff <<EOF
--- foo
+++ foo
1c
bar
.
--- baz
+++ baz
0a
baz
.
EOF

# Apparently we can't create a file with such a patch, while it works fine
# when the file name is provided on the command line
cat > baz <<EOF
EOF

check 'patch -e -i ed3.diff' <<EOF
EOF

check 'cat foo' <<EOF
bar
EOF

check 'cat baz' <<EOF
baz
EOF