Mercurial > vim
diff src/normal.c @ 2049:23d366df1938 v7.2.335
updated for version 7.2.335
Problem: The CTRL-] command escapes too many characters.
Solution: Use a different list of characters to be escaped. (Sergey Khorev)
author | Bram Moolenaar <bram@zimbu.org> |
---|---|
date | Tue, 19 Jan 2010 15:24:27 +0100 |
parents | 70c67b1bb1f1 |
children | 6b5d641bcdd4 |
line wrap: on
line diff
--- a/src/normal.c +++ b/src/normal.c @@ -5406,6 +5406,7 @@ nv_ident(cap) int n = 0; /* init for GCC */ int cmdchar; int g_cmd; /* "g" command */ + int tag_cmd = FALSE; char_u *aux_ptr; int isman; int isman_s; @@ -5515,6 +5516,7 @@ nv_ident(cap) break; case ']': + tag_cmd = TRUE; #ifdef FEAT_CSCOPE if (p_cst) STRCPY(buf, "cstag "); @@ -5526,10 +5528,14 @@ nv_ident(cap) default: if (curbuf->b_help) STRCPY(buf, "he! "); - else if (g_cmd) - STRCPY(buf, "tj "); else - sprintf((char *)buf, "%ldta ", cap->count0); + { + tag_cmd = TRUE; + if (g_cmd) + STRCPY(buf, "tj "); + else + sprintf((char *)buf, "%ldta ", cap->count0); + } } /* @@ -5562,8 +5568,10 @@ nv_ident(cap) aux_ptr = (char_u *)(p_magic ? "/.*~[^$\\" : "/^$\\"); else if (cmdchar == '#') aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\"); + else if (tag_cmd) + /* Don't escape spaces and Tabs in a tag with a backslash */ + aux_ptr = (char_u *)"\\|\"\n["; else - /* Don't escape spaces and Tabs in a tag with a backslash */ aux_ptr = (char_u *)"\\|\"\n*?["; p = buf + STRLEN(buf);