updated for version 7.4b.006
Problem: Using \{n,m} in an autocommand pattern no longer works.
Specifically, mutt temp files are not recognized. (Gary Johnson)
Solution: Make \\\{n,m\} work.
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 4d7a426..543c1df 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -961,6 +961,9 @@
\, matches a ','
{ } like \( \) in a |pattern|
, inside { }: like \| in a |pattern|
+ \} literal }
+ \{ literal {
+ \\\{n,m\} like \{n,m} in a |pattern|
\ special meaning like in a |pattern|
[ch] matches 'c' or 'h'
[^ch] match any character but 'c' and 'h'
diff --git a/src/fileio.c b/src/fileio.c
index fe90246..731a7b1 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -10327,7 +10327,7 @@
* Don't unescape \, * and others that are also special in a
* regexp.
* An escaped { must be unescaped since we use magic not
- * verymagic.
+ * verymagic. Use "\\\{n,m\}"" to get "\{n,m}".
*/
if (*++p == '?'
#ifdef BACKSLASH_IN_FILENAME
@@ -10337,8 +10337,14 @@
reg_pat[i++] = '?';
else
if (*p == ',' || *p == '%' || *p == '#'
- || *p == ' ' || *p == '{')
+ || *p == ' ' || *p == '{' || *p == '}')
reg_pat[i++] = *p;
+ else if (*p == '\\' && p[1] == '\\' && p[2] == '{')
+ {
+ reg_pat[i++] = '\\';
+ reg_pat[i++] = '{';
+ p += 2;
+ }
else
{
if (allow_dirs != NULL && vim_ispathsep(*p)
diff --git a/src/version.c b/src/version.c
index ec2c2c0..77c3e8d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -728,6 +728,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 6,
+/**/
5,
/**/
4,