diff options
author | Bram Moolenaar <bram@vim.org> | 2014-12-14 00:43:54 +0100 |
---|---|---|
committer | Bram Moolenaar <bram@vim.org> | 2014-12-14 00:43:54 +0100 |
commit | 2cdc68b22bd620caaed32ba1c4c97b54aa8e124b (patch) | |
tree | 4f206e1c59d75918fdd2167cc0136846983417f2 | |
parent | 5074ae6cff1884c881e4ae9d65a7043f04242018 (diff) | |
download | vim-2cdc68b22bd620caaed32ba1c4c97b54aa8e124b.tar.gz |
Problem: Langmap applies to Insert mode expression mappings.
Solution: Check for Insert mode. (Daniel Hahler)
-rw-r--r-- | src/getchar.c | 2 | ||||
-rw-r--r-- | src/testdir/test_mapping.in | 9 | ||||
-rw-r--r-- | src/testdir/test_mapping.ok | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 14 insertions, 1 deletions
diff --git a/src/getchar.c b/src/getchar.c index c9ee4d05..174cfa89 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -2145,7 +2145,7 @@ vgetorpeek(advance) nolmaplen = 2; else { - LANGMAP_ADJUST(c1, TRUE); + LANGMAP_ADJUST(c1, (State & INSERT) == 0); nolmaplen = 0; } #endif diff --git a/src/testdir/test_mapping.in b/src/testdir/test_mapping.in index e2572772..5f895a46 100644 --- a/src/testdir/test_mapping.in +++ b/src/testdir/test_mapping.in @@ -8,6 +8,15 @@ STARTTEST :inoreab чкпр vim GAчкпр + +: " langmap should not get remapped in insert mode +:inoremap { FAIL_ilangmap +:set langmap=+{ langnoremap +o+ +: " expr mapping with langmap +:inoremap <expr> { "FAIL_iexplangmap" +o+ + :/^test/,$w! test.out :qa! ENDTEST diff --git a/src/testdir/test_mapping.ok b/src/testdir/test_mapping.ok index abdaea6a..8d949765 100644 --- a/src/testdir/test_mapping.ok +++ b/src/testdir/test_mapping.ok @@ -1,2 +1,4 @@ test starts here: vim ++ ++ diff --git a/src/version.c b/src/version.c index 6408d570..e8d75252 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 552, +/**/ 551, /**/ 550, |