Blob Blame History Raw
To: vim-dev@vim.org
Subject: Patch 7.1.241
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------

Patch 7.1.241
Problem:    Focus change events not always ignored.  (Erik Falor)
Solution:   Ignore K_IGNORE in Insert mode in a few more places.
Files:	    src/edit.c


*** ../vim-7.1.240/src/edit.c	Wed Jan 16 20:01:14 2008
--- src/edit.c	Tue Jan 22 17:45:32 2008
***************
*** 703,712 ****
  #endif
  
  	/*
! 	 * Get a character for Insert mode.
  	 */
  	lastc = c;			/* remember previous char for CTRL-D */
! 	c = safe_vgetc();
  
  #ifdef FEAT_AUTOCMD
  	/* Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. */
--- 703,715 ----
  #endif
  
  	/*
! 	 * Get a character for Insert mode.  Ignore K_IGNORE.
  	 */
  	lastc = c;			/* remember previous char for CTRL-D */
! 	do
! 	{
! 	    c = safe_vgetc();
! 	} while (c == K_IGNORE);
  
  #ifdef FEAT_AUTOCMD
  	/* Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. */
***************
*** 777,783 ****
  	/* Prepare for or stop CTRL-X mode.  This doesn't do completion, but
  	 * it does fix up the text when finishing completion. */
  	compl_get_longest = FALSE;
! 	if (c != K_IGNORE && ins_compl_prep(c))
  	    continue;
  #endif
  
--- 780,786 ----
  	/* Prepare for or stop CTRL-X mode.  This doesn't do completion, but
  	 * it does fix up the text when finishing completion. */
  	compl_get_longest = FALSE;
! 	if (ins_compl_prep(c))
  	    continue;
  #endif
  
***************
*** 4516,4530 ****
  	else
  	{
  	    /* Need to get the character to have KeyTyped set.  We'll put it
! 	     * back with vungetc() below. */
  	    c = safe_vgetc();
  
! 	    /* Don't interrupt completion when the character wasn't typed,
! 	     * e.g., when doing @q to replay keys. */
! 	    if (c != Ctrl_R && KeyTyped)
! 		compl_interrupted = TRUE;
! 
! 	    vungetc(c);
  	}
      }
      if (compl_pending != 0 && !got_int)
--- 4519,4535 ----
  	else
  	{
  	    /* Need to get the character to have KeyTyped set.  We'll put it
! 	     * back with vungetc() below.  But skip K_IGNORE. */
  	    c = safe_vgetc();
+ 	    if (c != K_IGNORE)
+ 	    {
+ 		/* Don't interrupt completion when the character wasn't typed,
+ 		 * e.g., when doing @q to replay keys. */
+ 		if (c != Ctrl_R && KeyTyped)
+ 		    compl_interrupted = TRUE;
  
! 		vungetc(c);
! 	    }
  	}
      }
      if (compl_pending != 0 && !got_int)
*** ../vim-7.1.240/src/version.c	Tue Jan 22 16:01:25 2008
--- src/version.c	Tue Jan 22 17:48:46 2008
***************
*** 668,669 ****
--- 668,671 ----
  {   /* Add new patch number below this line */
+ /**/
+     241,
  /**/

-- 
The problem with political jokes is that they get elected.

 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///