summaryrefslogtreecommitdiff
path: root/src/memline.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2009-11-03 12:06:23 +0000
committerBram Moolenaar <Bram@vim.org>2009-11-03 12:06:23 +0000
commitd0ba34a6e56cad53e2ac3e34ecd881aacf1dd434 (patch)
treee2bbf1505c728e2eee2580f1f4e9718077c1fe23 /src/memline.c
parent0af561dbf22e4dedb665efd45d736446cbd649de (diff)
downloadvim-git-d0ba34a6e56cad53e2ac3e34ecd881aacf1dd434.tar.gz
updated for version 7.2-272v7.2.272
Diffstat (limited to 'src/memline.c')
-rw-r--r--src/memline.c17
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() */