diff options
author | Bram Moolenaar <Bram@vim.org> | 2009-11-03 12:06:23 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2009-11-03 12:06:23 +0000 |
commit | d0ba34a6e56cad53e2ac3e34ecd881aacf1dd434 (patch) | |
tree | e2bbf1505c728e2eee2580f1f4e9718077c1fe23 /src/memline.c | |
parent | 0af561dbf22e4dedb665efd45d736446cbd649de (diff) | |
download | vim-git-d0ba34a6e56cad53e2ac3e34ecd881aacf1dd434.tar.gz |
updated for version 7.2-272v7.2.272
Diffstat (limited to 'src/memline.c')
-rw-r--r-- | src/memline.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/memline.c b/src/memline.c index 8c8019ab7..eba3561a7 100644 --- a/src/memline.c +++ b/src/memline.c @@ -864,21 +864,24 @@ ml_recover() recoverymode = TRUE; called_from_main = (curbuf->b_ml.ml_mfp == NULL); attr = hl_attr(HLF_E); -/* - * If the file name ends in ".sw?" we use it directly. - * Otherwise a search is done to find the swap file(s). - */ + + /* + * If the file name ends in ".s[uvw][a-z]" we assume this is the swap file. + * Otherwise a search is done to find the swap file(s). + */ fname = curbuf->b_fname; if (fname == NULL) /* When there is no file name */ fname = (char_u *)""; len = (int)STRLEN(fname); if (len >= 4 && #if defined(VMS) || defined(RISCOS) - STRNICMP(fname + len - 4, "_sw" , 3) + STRNICMP(fname + len - 4, "_s" , 2) #else - STRNICMP(fname + len - 4, ".sw" , 3) + STRNICMP(fname + len - 4, ".s" , 2) #endif - == 0) + == 0 + && vim_strchr((char_u *)"UVWuvw", fname[len - 2]) != NULL + && ASCII_ISALPHA(fname[len - 1])) { directly = TRUE; fname = vim_strsave(fname); /* make a copy for mf_open() */ |