diff src/normal.c @ 6071:f59c4bf0ac3b v7.4.374

updated for version 7.4.374 Problem: Character after "fb" command not mapped if it might be a composing character. Solution: Don't disable mapping when looking for a composing character. (Jacob Niehus)
author Bram Moolenaar <bram@vim.org>
date Wed, 23 Jul 2014 12:31:20 +0200
parents 75f222d67cea
children 2e804ebb3ee8
line wrap: on
line diff
--- a/src/normal.c
+++ b/src/normal.c
@@ -1076,7 +1076,10 @@ getcount:
 #ifdef FEAT_MBYTE
 	    /* When getting a text character and the next character is a
 	     * multi-byte character, it could be a composing character.
-	     * However, don't wait for it to arrive. */
+	     * However, don't wait for it to arrive. Also, do enable mapping,
+	     * because if it's put back with vungetc() it's too late to apply
+	     * mapping. */
+	    --no_mapping;
 	    while (enc_utf8 && lang && (c = vpeekc()) > 0
 				 && (c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1))
 	    {
@@ -1091,6 +1094,7 @@ getcount:
 		else
 		    ca.ncharC2 = c;
 	    }
+	    ++no_mapping;
 #endif
 	}
 	--no_mapping;