# HG changeset patch # User Bram Moolenaar # Date 1375449759 -7200 # Node ID 6b7ab6a4f31a54bceb4e7d6f0f9404b5a37bdad3 # Parent 01452b8a075a2b7beff5e6281cebf07cec84bc26 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 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -961,6 +961,9 @@ The pattern is interpreted like mostly u \, 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 --- a/src/fileio.c +++ b/src/fileio.c @@ -10327,7 +10327,7 @@ file_pat_to_reg_pat(pat, pat_end, allow_ * 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 @@ file_pat_to_reg_pat(pat, pat_end, allow_ 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 --- a/src/version.c +++ b/src/version.c @@ -728,6 +728,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 6, +/**/ 5, /**/ 4,