Mercurial > vim
comparison src/spell.c @ 16738:b52ea9c5f1db v8.1.1371
patch 8.1.1371: cannot recover from a swap file
commit https://github.com/vim/vim/commit/99499b1c05f85f83876b828eea3f6e14f0f407b4
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu May 23 21:35:48 2019 +0200
patch 8.1.1371: cannot recover from a swap file
Problem: Cannot recover from a swap file.
Solution: Do not expand environment variables in the swap file name.
Do not check the extension when we already know a file is a swap
file. (Ken Takata, closes 4415, closes #4369)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 23 May 2019 21:45:07 +0200 |
parents | 7e733046db1d |
children | ef00b6bc186b |
comparison
equal
deleted
inserted
replaced
16737:e56018f01ba7 | 16738:b52ea9c5f1db |
---|---|
2341 else | 2341 else |
2342 dont_use_region = TRUE; | 2342 dont_use_region = TRUE; |
2343 | 2343 |
2344 /* Check if we loaded this language before. */ | 2344 /* Check if we loaded this language before. */ |
2345 for (slang = first_lang; slang != NULL; slang = slang->sl_next) | 2345 for (slang = first_lang; slang != NULL; slang = slang->sl_next) |
2346 if (fullpathcmp(lang, slang->sl_fname, FALSE) == FPC_SAME) | 2346 if (fullpathcmp(lang, slang->sl_fname, FALSE, TRUE) == FPC_SAME) |
2347 break; | 2347 break; |
2348 } | 2348 } |
2349 else | 2349 else |
2350 { | 2350 { |
2351 filename = FALSE; | 2351 filename = FALSE; |
2393 | 2393 |
2394 /* | 2394 /* |
2395 * Loop over the languages, there can be several files for "lang". | 2395 * Loop over the languages, there can be several files for "lang". |
2396 */ | 2396 */ |
2397 for (slang = first_lang; slang != NULL; slang = slang->sl_next) | 2397 for (slang = first_lang; slang != NULL; slang = slang->sl_next) |
2398 if (filename ? fullpathcmp(lang, slang->sl_fname, FALSE) == FPC_SAME | 2398 if (filename ? fullpathcmp(lang, slang->sl_fname, FALSE, TRUE) |
2399 == FPC_SAME | |
2399 : STRICMP(lang, slang->sl_name) == 0) | 2400 : STRICMP(lang, slang->sl_name) == 0) |
2400 { | 2401 { |
2401 region_mask = REGION_ALL; | 2402 region_mask = REGION_ALL; |
2402 if (!filename && region != NULL) | 2403 if (!filename && region != NULL) |
2403 { | 2404 { |
2461 | 2462 |
2462 /* If it was already found above then skip it. */ | 2463 /* If it was already found above then skip it. */ |
2463 for (c = 0; c < ga.ga_len; ++c) | 2464 for (c = 0; c < ga.ga_len; ++c) |
2464 { | 2465 { |
2465 p = LANGP_ENTRY(ga, c)->lp_slang->sl_fname; | 2466 p = LANGP_ENTRY(ga, c)->lp_slang->sl_fname; |
2466 if (p != NULL && fullpathcmp(spf_name, p, FALSE) == FPC_SAME) | 2467 if (p != NULL && fullpathcmp(spf_name, p, FALSE, TRUE) |
2468 == FPC_SAME) | |
2467 break; | 2469 break; |
2468 } | 2470 } |
2469 if (c < ga.ga_len) | 2471 if (c < ga.ga_len) |
2470 continue; | 2472 continue; |
2471 } | 2473 } |
2472 | 2474 |
2473 /* Check if it was loaded already. */ | 2475 /* Check if it was loaded already. */ |
2474 for (slang = first_lang; slang != NULL; slang = slang->sl_next) | 2476 for (slang = first_lang; slang != NULL; slang = slang->sl_next) |
2475 if (fullpathcmp(spf_name, slang->sl_fname, FALSE) == FPC_SAME) | 2477 if (fullpathcmp(spf_name, slang->sl_fname, FALSE, TRUE) |
2478 == FPC_SAME) | |
2476 break; | 2479 break; |
2477 if (slang == NULL) | 2480 if (slang == NULL) |
2478 { | 2481 { |
2479 /* Not loaded, try loading it now. The language name includes the | 2482 /* Not loaded, try loading it now. The language name includes the |
2480 * region name, the region is ignored otherwise. for int_wordlist | 2483 * region name, the region is ignored otherwise. for int_wordlist |