| 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 |  |  |