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
|
# -*-perl-*-
$description = "Test backslash-newline handling.";
$details = "";
# TEST #1
# -------
# Backslash-newlines in recipes
# These are basic backslash-newlines with no tricks
run_make_test("fast:;\@echo fa\\\nst\n",
'', 'fast');
run_make_test("slow:;\@: no-op; echo sl\\\now\n",
'', 'slow');
run_make_test("dquote:;\@echo \"dqu\\\note\"\n",
'', 'dquote');
run_make_test("squote:;\@echo 'squ\\\note'\n",
'', "squ\\\note");
# Ensure that a leading prefix character is omitted
run_make_test("fast:;\@echo fa\\\n\tst\n",
'', 'fast');
run_make_test("slow:;\@: no-op; echo sl\\\n\tow\n",
'', 'slow');
run_make_test("dquote:;\@echo \"dqu\\\n\tote\"\n",
'', 'dquote');
run_make_test("squote:;\@echo 'squ\\\n\tote'\n",
'', "squ\\\note");
# Ensure that ONLY the leading prefix character is omitted
run_make_test("fast:;\@echo fa\\\n\t st\n",
'', 'fa st');
run_make_test("slow:;\@: no-op; echo sl\\\n\t\tow\n",
'', "sl ow");
run_make_test("dquote:;\@echo \"dqu\\\n\t ote\"\n",
'', 'dqu ote');
run_make_test("squote:;\@echo 'squ\\\n\t\t ote'\n",
'', "squ\\\n\t ote");
# Backslash-newlines in variable values
# Simple
run_make_test(q!
var = he\
llo
var:;@echo '|$(var)|'!,
'', "|he llo|");
# Condense trailing space
run_make_test(q!
var = he \
llo
var:;@echo '|$(var)|'!,
'', "|he llo|");
# Remove leading space
run_make_test(q!
var = he\
llo
var:;@echo '|$(var)|'!,
'', "|he llo|");
# Multiple bs/nl condensed
run_make_test(q!
var = he\
\
\
llo
var:;@echo '|$(var)|'!,
'', "|he llo|");
# POSIX: Preserve trailing space
run_make_test(q!
.POSIX:
x = y
var = he \
llo
var:;@echo '|$(var)|'!,
'', "|he llo|");
# POSIX: One space per bs-nl
run_make_test(q!
.POSIX:
x = y
var = he\
\
\
llo
var:;@echo '|$(var)|'!,
'', "|he llo|");
1;
|