From e0ebfd75077c5010f31fcecefb87f9fe06889131 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 5 Apr 2012 16:07:06 +0200 Subject: [PATCH] updated for version 7.3.489 Problem: CTRL-] in Insert mode does not expand abbreviation when used in a mapping. (Yichao Zhou) Solution: Special case using CTRL-]. (Christian Brabandt) --- src/edit.c | 7 +++++-- src/getchar.c | 5 +++-- src/version.c | 2 ++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/edit.c b/src/edit.c index e95ddddc25..c8320a6e23 100644 --- a/src/edit.c +++ b/src/edit.c @@ -1455,13 +1455,16 @@ normalchar: Insstart_blank_vcol = get_nolist_virtcol(); } - if (vim_iswordc(c) || !echeck_abbr( + /* Insert a normal character and check for abbreviations on a + * special character. Let CTRL-] expand abbreviations without + * inserting it. */ + if (vim_iswordc(c) || (!echeck_abbr( #ifdef FEAT_MBYTE /* Add ABBR_OFF for characters above 0x100, this is * what check_abbr() expects. */ (has_mbyte && c >= 0x100) ? (c + ABBR_OFF) : #endif - c)) + c) && c != Ctrl_RSB)) { insert_special(c, FALSE, FALSE); #ifdef FEAT_RIGHTLEFT diff --git a/src/getchar.c b/src/getchar.c index dc7d768476..606d9a2c6f 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -4352,8 +4352,9 @@ check_abbr(c, ptr, col, mincol) if (typebuf.tb_no_abbr_cnt) /* abbrev. are not recursive */ return FALSE; - if ((KeyNoremap & (RM_NONE|RM_SCRIPT)) != 0) - /* no remapping implies no abbreviation */ + + /* no remapping implies no abbreviation, except for CTRL-] */ + if ((KeyNoremap & (RM_NONE|RM_SCRIPT)) != 0 && c != Ctrl_RSB) return FALSE; /* diff --git a/src/version.c b/src/version.c index 8bcdd3075f..d012d99090 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 489, /**/ 488, /**/