i3 - improved tiling WM


put common part of error messages into variable

Patch status: merged

Patch by Sascha Kruse

Long description:

This makes future changes easier when new tokens are added to the
parser.

To apply this patch, use:
curl http://cr.i3wm.org/patch/28/raw.patch | git am

b/testcases/t/201-config-parser.t

15
@@ -391,8 +391,11 @@ hide_edge_border both
16
 client.focused          #4c7899 #285577 #ffffff #2e9ef4
17
 EOT
18
 
19
-$expected = <<'EOT';
20
+my $expected_all_tokens = <<'EOT';
21
 ERROR: CONFIG: Expected one of these tokens: <end>, '#', 'set', 'bindsym', 'bindcode', 'bind', 'bar', 'font', 'mode', 'floating_minimum_size', 'floating_maximum_size', 'floating_modifier', 'default_orientation', 'workspace_layout', 'new_window', 'new_float', 'hide_edge_borders', 'for_window', 'assign', 'focus_follows_mouse', 'force_focus_wrapping', 'force_xinerama', 'force-xinerama', 'workspace_auto_back_and_forth', 'fake_outputs', 'fake-outputs', 'force_display_urgency_hint', 'workspace', 'ipc_socket', 'ipc-socket', 'restart_state', 'popup_during_fullscreen', 'exec_always', 'exec', 'client.background', 'client.focused_inactive', 'client.focused', 'client.unfocused', 'client.urgent'
22
+EOT
23
+
24
+my $expected_end = <<'EOT';
25
 ERROR: CONFIG: (in file <stdin>)
26
 ERROR: CONFIG: Line   1: hide_edge_border both
27
 ERROR: CONFIG:           ^^^^^^^^^^^^^^^^^^^^^
28
@@ -400,6 +403,8 @@ ERROR: CONFIG: Line   2: client.focused          #4c7899 #285577 #ffffff #2e9ef4
29
 cfg_color(client.focused, #4c7899, #285577, #ffffff, #2e9ef4)
30
 EOT
31
 
32
+$expected = $expected_all_tokens . $expected_end;
33
+
34
 is(parser_calls($config),
35
    $expected,
36
    'errors dont harm subsequent statements');
37
@@ -438,9 +443,11 @@ unknown qux
38
 # this should not show up
39
 EOT
40
 
41
-$expected = <<'EOT';
42
+my $expected_head = <<'EOT';
43
 cfg_font(foobar)
44
-ERROR: CONFIG: Expected one of these tokens: <end>, '#', 'set', 'bindsym', 'bindcode', 'bind', 'bar', 'font', 'mode', 'floating_minimum_size', 'floating_maximum_size', 'floating_modifier', 'default_orientation', 'workspace_layout', 'new_window', 'new_float', 'hide_edge_borders', 'for_window', 'assign', 'focus_follows_mouse', 'force_focus_wrapping', 'force_xinerama', 'force-xinerama', 'workspace_auto_back_and_forth', 'fake_outputs', 'fake-outputs', 'force_display_urgency_hint', 'workspace', 'ipc_socket', 'ipc-socket', 'restart_state', 'popup_during_fullscreen', 'exec_always', 'exec', 'client.background', 'client.focused_inactive', 'client.focused', 'client.unfocused', 'client.urgent'
45
+EOT
46
+
47
+my $expected_tail = <<'EOT';
48
 ERROR: CONFIG: (in file <stdin>)
49
 ERROR: CONFIG: Line   3: font foobar
50
 ERROR: CONFIG: Line   4: 
51
@@ -450,6 +457,8 @@ ERROR: CONFIG: Line   6:
52
 ERROR: CONFIG: Line   7: # yay
53
 EOT
54
 
55
+$expected = $expected_head . $expected_all_tokens . $expected_tail;
56
+
57
 is(parser_calls($config),
58
    $expected,
59
    'error message (2+2 context) ok');
60
@@ -462,13 +471,14 @@ $config = <<'EOT';
61
 unknown qux
62
 EOT
63
 
64
-$expected = <<'EOT';
65
-ERROR: CONFIG: Expected one of these tokens: <end>, '#', 'set', 'bindsym', 'bindcode', 'bind', 'bar', 'font', 'mode', 'floating_minimum_size', 'floating_maximum_size', 'floating_modifier', 'default_orientation', 'workspace_layout', 'new_window', 'new_float', 'hide_edge_borders', 'for_window', 'assign', 'focus_follows_mouse', 'force_focus_wrapping', 'force_xinerama', 'force-xinerama', 'workspace_auto_back_and_forth', 'fake_outputs', 'fake-outputs', 'force_display_urgency_hint', 'workspace', 'ipc_socket', 'ipc-socket', 'restart_state', 'popup_during_fullscreen', 'exec_always', 'exec', 'client.background', 'client.focused_inactive', 'client.focused', 'client.unfocused', 'client.urgent'
66
+$expected_tail = <<'EOT';
67
 ERROR: CONFIG: (in file <stdin>)
68
 ERROR: CONFIG: Line   1: unknown qux
69
 ERROR: CONFIG:           ^^^^^^^^^^^
70
 EOT
71
 
72
+$expected = $expected_all_tokens . $expected_tail;
73
+
74
 is(parser_calls($config),
75
    $expected,
76
    'error message (0+0 context) ok');
77
@@ -482,14 +492,15 @@ $config = <<'EOT';
78
 unknown qux
79
 EOT
80
 
81
-$expected = <<'EOT';
82
-ERROR: CONFIG: Expected one of these tokens: <end>, '#', 'set', 'bindsym', 'bindcode', 'bind', 'bar', 'font', 'mode', 'floating_minimum_size', 'floating_maximum_size', 'floating_modifier', 'default_orientation', 'workspace_layout', 'new_window', 'new_float', 'hide_edge_borders', 'for_window', 'assign', 'focus_follows_mouse', 'force_focus_wrapping', 'force_xinerama', 'force-xinerama', 'workspace_auto_back_and_forth', 'fake_outputs', 'fake-outputs', 'force_display_urgency_hint', 'workspace', 'ipc_socket', 'ipc-socket', 'restart_state', 'popup_during_fullscreen', 'exec_always', 'exec', 'client.background', 'client.focused_inactive', 'client.focused', 'client.unfocused', 'client.urgent'
83
+$expected_tail = <<'EOT';
84
 ERROR: CONFIG: (in file <stdin>)
85
 ERROR: CONFIG: Line   1: # context before
86
 ERROR: CONFIG: Line   2: unknown qux
87
 ERROR: CONFIG:           ^^^^^^^^^^^
88
 EOT
89
 
90
+$expected = $expected_all_tokens . $expected_tail;
91
+
92
 is(parser_calls($config),
93
    $expected,
94
    'error message (1+0 context) ok');
95
@@ -503,14 +514,15 @@ unknown qux
96
 # context after
97
 EOT
98
 
99
-$expected = <<'EOT';
100
-ERROR: CONFIG: Expected one of these tokens: <end>, '#', 'set', 'bindsym', 'bindcode', 'bind', 'bar', 'font', 'mode', 'floating_minimum_size', 'floating_maximum_size', 'floating_modifier', 'default_orientation', 'workspace_layout', 'new_window', 'new_float', 'hide_edge_borders', 'for_window', 'assign', 'focus_follows_mouse', 'force_focus_wrapping', 'force_xinerama', 'force-xinerama', 'workspace_auto_back_and_forth', 'fake_outputs', 'fake-outputs', 'force_display_urgency_hint', 'workspace', 'ipc_socket', 'ipc-socket', 'restart_state', 'popup_during_fullscreen', 'exec_always', 'exec', 'client.background', 'client.focused_inactive', 'client.focused', 'client.unfocused', 'client.urgent'
101
+$expected_tail = <<'EOT';
102
 ERROR: CONFIG: (in file <stdin>)
103
 ERROR: CONFIG: Line   1: unknown qux
104
 ERROR: CONFIG:           ^^^^^^^^^^^
105
 ERROR: CONFIG: Line   2: # context after
106
 EOT
107
 
108
+$expected = $expected_all_tokens . $expected_tail;
109
+
110
 is(parser_calls($config),
111
    $expected,
112
    'error message (0+1 context) ok');
113
@@ -525,8 +537,7 @@ unknown qux
114
 # context 2 after
115
 EOT
116
 
117
-$expected = <<'EOT';
118
-ERROR: CONFIG: Expected one of these tokens: <end>, '#', 'set', 'bindsym', 'bindcode', 'bind', 'bar', 'font', 'mode', 'floating_minimum_size', 'floating_maximum_size', 'floating_modifier', 'default_orientation', 'workspace_layout', 'new_window', 'new_float', 'hide_edge_borders', 'for_window', 'assign', 'focus_follows_mouse', 'force_focus_wrapping', 'force_xinerama', 'force-xinerama', 'workspace_auto_back_and_forth', 'fake_outputs', 'fake-outputs', 'force_display_urgency_hint', 'workspace', 'ipc_socket', 'ipc-socket', 'restart_state', 'popup_during_fullscreen', 'exec_always', 'exec', 'client.background', 'client.focused_inactive', 'client.focused', 'client.unfocused', 'client.urgent'
119
+$expected_tail = <<'EOT';
120
 ERROR: CONFIG: (in file <stdin>)
121
 ERROR: CONFIG: Line   1: unknown qux
122
 ERROR: CONFIG:           ^^^^^^^^^^^
123
@@ -534,6 +545,8 @@ ERROR: CONFIG: Line   2: # context after
124
 ERROR: CONFIG: Line   3: # context 2 after
125
 EOT
126
 
127
+$expected = $expected_all_tokens . $expected_tail;
128
+
129
 is(parser_calls($config),
130
    $expected,
131
    'error message (0+2 context) ok');