summaryrefslogtreecommitdiffstats
path: root/src/getchar.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2008-06-24 20:19:36 +0000
committerBram Moolenaar <Bram@vim.org>2008-06-24 20:19:36 +0000
commitf233048a129fa7a3b89e064078435181d6421da5 (patch)
tree750527cb322fe9ba1559b81da60f2bee923c83cd /src/getchar.c
parent176dd1e03c7e5f23e633705da2c8718d3cd320e1 (diff)
updated for version 7.2a
Diffstat (limited to 'src/getchar.c')
-rw-r--r--src/getchar.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/getchar.c b/src/getchar.c
index d1c70c9db1..ec5ae87266 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -221,7 +221,7 @@ get_recorded()
char_u *
get_inserted()
{
- return(get_buffcont(&redobuff, FALSE));
+ return get_buffcont(&redobuff, FALSE);
}
/*
@@ -2233,6 +2233,8 @@ vgetorpeek(advance)
if ((mp == NULL || max_mlen >= mp_match_len)
&& keylen != KL_PART_MAP)
{
+ int save_keylen = keylen;
+
/*
* When no matching mapping found or found a
* non-matching mapping that matches at least what the
@@ -2252,6 +2254,12 @@ vgetorpeek(advance)
{
keylen = check_termcode(max_mlen + 1, NULL, 0);
+ /* If no termcode matched but 'pastetoggle'
+ * matched partially it's like an incomplete key
+ * sequence. */
+ if (keylen == 0 && save_keylen == KL_PART_KEY)
+ keylen = KL_PART_KEY;
+
/*
* When getting a partial match, but the last
* characters were not typed, don't wait for a
@@ -2293,7 +2301,9 @@ vgetorpeek(advance)
#endif
/* When there was a matching mapping and no
* termcode could be replaced after another one,
- * use that mapping. */
+ * use that mapping (loop around). If there was
+ * no mapping use the character from the
+ * typeahead buffer right here. */
if (mp == NULL)
{
/*
@@ -2883,6 +2893,12 @@ inchar(buf, maxlen, wait_time, tb_change_cnt)
#endif
)
{
+
+#if defined(FEAT_NETBEANS_INTG)
+ /* Process the queued netbeans messages. */
+ netbeans_parse_messages();
+#endif
+
if (got_int || (script_char = getc(scriptin[curscript])) < 0)
{
/* Reached EOF.
@@ -3847,7 +3863,7 @@ showmap(mp, local)
while (++len <= 3)
msg_putchar(' ');
- /* Get length of what we write */
+ /* Display the LHS. Get length of what we write. */
len = msg_outtrans_special(mp->m_keys, TRUE);
do
{