xaizek / vifm (License: GPLv2+) (since 2018-12-07)
Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt.
Commit 24401e074c371ce0b02ca6cedb7750ac13b5dcc1

Account for $env="" removing $env on Windows
Author: xaizek
Author date (UTC): 2016-01-01 13:54
Committer name: xaizek
Committer date (UTC): 2016-01-01 13:54
Parent(s): acd883a9148e58927b6cffea598ba21df3c07d69
Signing key:
Tree: 54ba0324265e264f11b019bf3258d07b64199f3a
File Lines added Lines deleted
tests/misc/autocmds.c 39 39
tests/misc/commands.c 2 2
File tests/misc/autocmds.c changed (mode: 100644) (index ca9abf8f5..e2967f286)
... ... TEST(addition_start)
47 47
48 48 TEST(addition_match) TEST(addition_match)
49 49 { {
50 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
50 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
51 51
52 52 assert_success(exec_commands("autocmd DirEnter '" SANDBOX_PATH "' let $a = 1", assert_success(exec_commands("autocmd DirEnter '" SANDBOX_PATH "' let $a = 1",
53 53 &lwin, CIT_COMMAND)); &lwin, CIT_COMMAND));
54 54
55 assert_string_equal("", env_get("a"));
55 assert_string_equal("x", env_get("a"));
56 56 assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0); assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0);
57 57 assert_string_equal("1", env_get("a")); assert_string_equal("1", env_get("a"));
58 58 } }
59 59
60 60 TEST(addition_no_match) TEST(addition_no_match)
61 61 { {
62 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
62 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
63 63
64 64 assert_success(exec_commands("autocmd DirEnter '" SANDBOX_PATH "' let $a = 1", assert_success(exec_commands("autocmd DirEnter '" SANDBOX_PATH "' let $a = 1",
65 65 &lwin, CIT_COMMAND)); &lwin, CIT_COMMAND));
66 66
67 assert_string_equal("", env_get("a"));
67 assert_string_equal("x", env_get("a"));
68 68 assert_true(change_directory(curr_view, TEST_DATA_PATH) >= 0); assert_true(change_directory(curr_view, TEST_DATA_PATH) >= 0);
69 assert_string_equal("", env_get("a"));
69 assert_string_equal("x", env_get("a"));
70 70 } }
71 71
72 72 TEST(remove_exact_match) TEST(remove_exact_match)
73 73 { {
74 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
74 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
75 75
76 76 assert_success(exec_commands("autocmd DirEnter '" SANDBOX_PATH "' let $a = 1", assert_success(exec_commands("autocmd DirEnter '" SANDBOX_PATH "' let $a = 1",
77 77 &lwin, CIT_COMMAND)); &lwin, CIT_COMMAND));
78 78 assert_success(exec_commands("autocmd! DirEnter '" SANDBOX_PATH "'", &lwin, assert_success(exec_commands("autocmd! DirEnter '" SANDBOX_PATH "'", &lwin,
79 79 CIT_COMMAND)); CIT_COMMAND));
80 80
81 assert_string_equal("", env_get("a"));
81 assert_string_equal("x", env_get("a"));
82 82 assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0); assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0);
83 assert_string_equal("", env_get("a"));
83 assert_string_equal("x", env_get("a"));
84 84 } }
85 85
86 86 TEST(remove_event_match) TEST(remove_event_match)
87 87 { {
88 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
88 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
89 89
90 90 assert_success(exec_commands("autocmd DirEnter '" SANDBOX_PATH "' let $a = 1", assert_success(exec_commands("autocmd DirEnter '" SANDBOX_PATH "' let $a = 1",
91 91 &lwin, CIT_COMMAND)); &lwin, CIT_COMMAND));
92 92 assert_success(exec_commands("autocmd! DirEnter", &lwin, CIT_COMMAND)); assert_success(exec_commands("autocmd! DirEnter", &lwin, CIT_COMMAND));
93 93
94 assert_string_equal("", env_get("a"));
94 assert_string_equal("x", env_get("a"));
95 95 assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0); assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0);
96 assert_string_equal("", env_get("a"));
96 assert_string_equal("x", env_get("a"));
97 97 } }
98 98
99 99 TEST(remove_path_match) TEST(remove_path_match)
100 100 { {
101 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
101 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
102 102
103 103 assert_success(exec_commands("autocmd DirEnter '" SANDBOX_PATH "' let $a = 1", assert_success(exec_commands("autocmd DirEnter '" SANDBOX_PATH "' let $a = 1",
104 104 &lwin, CIT_COMMAND)); &lwin, CIT_COMMAND));
105 105 assert_success(exec_commands("autocmd! * '" SANDBOX_PATH "'", &lwin, assert_success(exec_commands("autocmd! * '" SANDBOX_PATH "'", &lwin,
106 106 CIT_COMMAND)); CIT_COMMAND));
107 107
108 assert_string_equal("", env_get("a"));
108 assert_string_equal("x", env_get("a"));
109 109 assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0); assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0);
110 assert_string_equal("", env_get("a"));
110 assert_string_equal("x", env_get("a"));
111 111 } }
112 112
113 113 TEST(remove_all) TEST(remove_all)
114 114 { {
115 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
115 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
116 116
117 117 assert_success(exec_commands("autocmd DirEnter '" SANDBOX_PATH "' let $a = 1", assert_success(exec_commands("autocmd DirEnter '" SANDBOX_PATH "' let $a = 1",
118 118 &lwin, CIT_COMMAND)); &lwin, CIT_COMMAND));
119 119 assert_success(exec_commands("autocmd!", &lwin, CIT_COMMAND)); assert_success(exec_commands("autocmd!", &lwin, CIT_COMMAND));
120 120
121 assert_string_equal("", env_get("a"));
121 assert_string_equal("x", env_get("a"));
122 122 assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0); assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0);
123 assert_string_equal("", env_get("a"));
123 assert_string_equal("x", env_get("a"));
124 124 } }
125 125
126 126 TEST(remove_too_many_args) TEST(remove_too_many_args)
 
... ... TEST(remove_too_many_args)
130 130
131 131 TEST(extra_slash_is_fine) TEST(extra_slash_is_fine)
132 132 { {
133 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
133 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
134 134
135 135 assert_success(exec_commands("auto DirEnter '" SANDBOX_PATH "/' let $a = 1", assert_success(exec_commands("auto DirEnter '" SANDBOX_PATH "/' let $a = 1",
136 136 &lwin, CIT_COMMAND)); &lwin, CIT_COMMAND));
137 137
138 assert_string_equal("", env_get("a"));
138 assert_string_equal("x", env_get("a"));
139 139 assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0); assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0);
140 140 assert_string_equal("1", env_get("a")); assert_string_equal("1", env_get("a"));
141 141 } }
 
... ... TEST(error_on_wrong_event_name)
148 148
149 149 TEST(envvars_are_expanded) TEST(envvars_are_expanded)
150 150 { {
151 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
151 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
152 152
153 env_set("path", SANDBOX_PATH);
154 assert_success(exec_commands("autocmd DirEnter $path let $a = 1", &lwin,
153 env_set("dir", SANDBOX_PATH);
154 assert_success(exec_commands("autocmd DirEnter $dir let $a = 1", &lwin,
155 155 CIT_COMMAND)); CIT_COMMAND));
156 156
157 assert_string_equal("", env_get("a"));
157 assert_string_equal("x", env_get("a"));
158 158 assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0); assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0);
159 159 assert_string_equal("1", env_get("a")); assert_string_equal("1", env_get("a"));
160 160 } }
161 161
162 162 TEST(pattern_negation) TEST(pattern_negation)
163 163 { {
164 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
164 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
165 165
166 166 assert_success(exec_commands("auto DirEnter '!" SANDBOX_PATH "' let $a = 1", assert_success(exec_commands("auto DirEnter '!" SANDBOX_PATH "' let $a = 1",
167 167 &lwin, CIT_COMMAND)); &lwin, CIT_COMMAND));
168 168
169 assert_string_equal("", env_get("a"));
169 assert_string_equal("x", env_get("a"));
170 170 assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0); assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0);
171 assert_string_equal("", env_get("a"));
171 assert_string_equal("x", env_get("a"));
172 172 assert_true(change_directory(curr_view, TEST_DATA_PATH) >= 0); assert_true(change_directory(curr_view, TEST_DATA_PATH) >= 0);
173 173 assert_string_equal("1", env_get("a")); assert_string_equal("1", env_get("a"));
174 174 } }
175 175
176 176 TEST(tail_pattern) TEST(tail_pattern)
177 177 { {
178 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
178 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
179 179
180 180 assert_success(exec_commands("auto DirEnter existing-files let $a = 1", &lwin, assert_success(exec_commands("auto DirEnter existing-files let $a = 1", &lwin,
181 181 CIT_COMMAND)); CIT_COMMAND));
182 182
183 assert_string_equal("", env_get("a"));
183 assert_string_equal("x", env_get("a"));
184 184 assert_true(change_directory(curr_view, TEST_DATA_PATH) >= 0); assert_true(change_directory(curr_view, TEST_DATA_PATH) >= 0);
185 assert_string_equal("", env_get("a"));
185 assert_string_equal("x", env_get("a"));
186 186 assert_true(change_directory(curr_view, TEST_DATA_PATH "/existing-files/") assert_true(change_directory(curr_view, TEST_DATA_PATH "/existing-files/")
187 187 >= 0); >= 0);
188 188 assert_string_equal("1", env_get("a")); assert_string_equal("1", env_get("a"));
 
... ... TEST(tail_pattern)
190 190
191 191 TEST(multiple_patterns_addition) TEST(multiple_patterns_addition)
192 192 { {
193 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
193 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
194 194
195 195 assert_success(exec_commands("auto DirEnter '" SANDBOX_PATH ",ab' let $a = 1", assert_success(exec_commands("auto DirEnter '" SANDBOX_PATH ",ab' let $a = 1",
196 196 &lwin, CIT_COMMAND)); &lwin, CIT_COMMAND));
197 197
198 assert_string_equal("", env_get("a"));
198 assert_string_equal("x", env_get("a"));
199 199 assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0); assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0);
200 200 assert_string_equal("1", env_get("a")); assert_string_equal("1", env_get("a"));
201 201 } }
202 202
203 203 TEST(multiple_patterns_removal) TEST(multiple_patterns_removal)
204 204 { {
205 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
205 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
206 206
207 207 assert_success(exec_commands( assert_success(exec_commands(
208 208 "auto DirEnter '" SANDBOX_PATH "," TEST_DATA_PATH "' let $a = 1", &lwin, "auto DirEnter '" SANDBOX_PATH "," TEST_DATA_PATH "' let $a = 1", &lwin,
 
... ... TEST(multiple_patterns_removal)
211 211 "auto! DirEnter '" SANDBOX_PATH "," TEST_DATA_PATH "'", &lwin, "auto! DirEnter '" SANDBOX_PATH "," TEST_DATA_PATH "'", &lwin,
212 212 CIT_COMMAND)); CIT_COMMAND));
213 213
214 assert_string_equal("", env_get("a"));
214 assert_string_equal("x", env_get("a"));
215 215 assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0); assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0);
216 216 assert_true(change_directory(curr_view, TEST_DATA_PATH) >= 0); assert_true(change_directory(curr_view, TEST_DATA_PATH) >= 0);
217 assert_string_equal("", env_get("a"));
217 assert_string_equal("x", env_get("a"));
218 218 } }
219 219
220 220 TEST(multiple_patterns_correct_expansion) TEST(multiple_patterns_correct_expansion)
 
... ... TEST(multiple_patterns_correct_expansion)
222 222 /* Each pattern should be expanded on its own, not all pattern string should /* Each pattern should be expanded on its own, not all pattern string should
223 223 * be expanded and then broken into patterns. */ * be expanded and then broken into patterns. */
224 224
225 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
225 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
226 226 assert_success(exec_commands("let $c = ','", &lwin, CIT_COMMAND)); assert_success(exec_commands("let $c = ','", &lwin, CIT_COMMAND));
227 227
228 228 assert_success(exec_commands( assert_success(exec_commands(
229 229 "auto DirEnter '" SANDBOX_PATH "$c" TEST_DATA_PATH "' let $a = 1", &lwin, "auto DirEnter '" SANDBOX_PATH "$c" TEST_DATA_PATH "' let $a = 1", &lwin,
230 230 CIT_COMMAND)); CIT_COMMAND));
231 231
232 assert_string_equal("", env_get("a"));
232 assert_string_equal("x", env_get("a"));
233 233 assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0); assert_true(change_directory(curr_view, SANDBOX_PATH) >= 0);
234 assert_string_equal("", env_get("a"));
234 assert_string_equal("x", env_get("a"));
235 235 } }
236 236
237 237 /* Windows has various limitations on characters used in file names. */ /* Windows has various limitations on characters used in file names. */
238 238 TEST(tilde_is_expanded_after_negation, IF(not_windows)) TEST(tilde_is_expanded_after_negation, IF(not_windows))
239 239 { {
240 assert_success(exec_commands("let $a = ''", &lwin, CIT_COMMAND));
240 assert_success(exec_commands("let $a = 'x'", &lwin, CIT_COMMAND));
241 241
242 242 assert_success(os_mkdir(SANDBOX_PATH"/~", 0700)); assert_success(os_mkdir(SANDBOX_PATH"/~", 0700));
243 243
244 244 assert_success(exec_commands("auto DirEnter !~ let $a = 1", &lwin, assert_success(exec_commands("auto DirEnter !~ let $a = 1", &lwin,
245 245 CIT_COMMAND)); CIT_COMMAND));
246 246
247 assert_string_equal("", env_get("a"));
247 assert_string_equal("x", env_get("a"));
248 248 assert_true(change_directory(curr_view, SANDBOX_PATH"/~") >= 0); assert_true(change_directory(curr_view, SANDBOX_PATH"/~") >= 0);
249 249 assert_string_equal("1", env_get("a")); assert_string_equal("1", env_get("a"));
250 250
File tests/misc/commands.c changed (mode: 100644) (index 37a6ebeae..da74befa8)
... ... TEST(or_operator_is_attributed_to_if)
275 275
276 276 TEST(or_operator_is_attributed_to_let) TEST(or_operator_is_attributed_to_let)
277 277 { {
278 (void)exec_commands("let $a = ''", &lwin, CIT_COMMAND);
279 assert_string_equal("", env_get("a"));
278 (void)exec_commands("let $a = 'x'", &lwin, CIT_COMMAND);
279 assert_string_equal("x", env_get("a"));
280 280 (void)exec_commands("let $a = 0 || 1", &lwin, CIT_COMMAND); (void)exec_commands("let $a = 0 || 1", &lwin, CIT_COMMAND);
281 281 assert_string_equal("1", env_get("a")); assert_string_equal("1", env_get("a"));
282 282 } }
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master