summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/memline.c17
-rw-r--r--src/version.c2
2 files changed, 12 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() */
diff --git a/src/version.c b/src/version.c
index 7e6b39d90..9dff42c00 100644
--- a/src/version.c
+++ b/src/version.c
@@ -677,6 +677,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 272,
+/**/
271,
/**/
270,