Karsten Hopp ce3276
To: vim-dev@vim.org
Karsten Hopp ce3276
Subject: patch 7.1.104
Karsten Hopp ce3276
Fcc: outbox
Karsten Hopp ce3276
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp ce3276
Mime-Version: 1.0
Karsten Hopp ce3276
Content-Type: text/plain; charset=ISO-8859-1
Karsten Hopp ce3276
Content-Transfer-Encoding: 8bit
Karsten Hopp ce3276
------------
Karsten Hopp ce3276
Karsten Hopp ce3276
Patch 7.1.104 (after 7.1.095)
Karsten Hopp ce3276
Problem:    When 'lazyredraw' is set a focus event causes redraw to be
Karsten Hopp ce3276
	    postponed until a key is pressed.
Karsten Hopp ce3276
Solution:   Instead of not returning from vgetc() when a focus event is
Karsten Hopp ce3276
	    encountered return K_IGNORE.  Add plain_vgetc() for when the
Karsten Hopp ce3276
	    caller doesn't want to get K_IGNORE.
Karsten Hopp ce3276
Files:	    src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_getln.c,
Karsten Hopp ce3276
	    src/getchar.c, src/normal.c, src/proto/getchar.pro, src/window.c
Karsten Hopp ce3276
Karsten Hopp ce3276
Karsten Hopp ce3276
*** ../vim-7.1.103/src/digraph.c	Sat Jul  7 13:57:39 2007
Karsten Hopp ce3276
--- src/digraph.c	Thu Sep 13 16:11:54 2007
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 2028,2034 ****
Karsten Hopp ce3276
  
Karsten Hopp ce3276
      ++no_mapping;
Karsten Hopp ce3276
      ++allow_keys;
Karsten Hopp ce3276
!     c = safe_vgetc();
Karsten Hopp ce3276
      --no_mapping;
Karsten Hopp ce3276
      --allow_keys;
Karsten Hopp ce3276
      if (c != ESC)		/* ESC cancels CTRL-K */
Karsten Hopp ce3276
--- 2028,2034 ----
Karsten Hopp ce3276
  
Karsten Hopp ce3276
      ++no_mapping;
Karsten Hopp ce3276
      ++allow_keys;
Karsten Hopp ce3276
!     c = plain_vgetc();
Karsten Hopp ce3276
      --no_mapping;
Karsten Hopp ce3276
      --allow_keys;
Karsten Hopp ce3276
      if (c != ESC)		/* ESC cancels CTRL-K */
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 2050,2056 ****
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
  	++no_mapping;
Karsten Hopp ce3276
  	++allow_keys;
Karsten Hopp ce3276
! 	cc = safe_vgetc();
Karsten Hopp ce3276
  	--no_mapping;
Karsten Hopp ce3276
  	--allow_keys;
Karsten Hopp ce3276
  	if (cc != ESC)	    /* ESC cancels CTRL-K */
Karsten Hopp ce3276
--- 2050,2056 ----
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
  	++no_mapping;
Karsten Hopp ce3276
  	++allow_keys;
Karsten Hopp ce3276
! 	cc = plain_vgetc();
Karsten Hopp ce3276
  	--no_mapping;
Karsten Hopp ce3276
  	--allow_keys;
Karsten Hopp ce3276
  	if (cc != ESC)	    /* ESC cancels CTRL-K */
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 2350,2356 ****
Karsten Hopp ce3276
      if (*curbuf->b_p_keymap == NUL)
Karsten Hopp ce3276
      {
Karsten Hopp ce3276
  	/* Stop any active keymap and clear the table.  Also remove
Karsten Hopp ce3276
! 	 * b:keymap_unload, as no keymap is active now. */
Karsten Hopp ce3276
  	keymap_unload();
Karsten Hopp ce3276
  	do_cmdline_cmd((char_u *)"unlet! b:keymap_name");
Karsten Hopp ce3276
      }
Karsten Hopp ce3276
--- 2350,2356 ----
Karsten Hopp ce3276
      if (*curbuf->b_p_keymap == NUL)
Karsten Hopp ce3276
      {
Karsten Hopp ce3276
  	/* Stop any active keymap and clear the table.  Also remove
Karsten Hopp ce3276
! 	 * b:keymap_name, as no keymap is active now. */
Karsten Hopp ce3276
  	keymap_unload();
Karsten Hopp ce3276
  	do_cmdline_cmd((char_u *)"unlet! b:keymap_name");
Karsten Hopp ce3276
      }
Karsten Hopp ce3276
*** ../vim-7.1.103/src/edit.c	Sun Aug 12 16:38:03 2007
Karsten Hopp ce3276
--- src/edit.c	Thu Sep 13 16:17:54 2007
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 788,794 ****
Karsten Hopp ce3276
  	    ins_redraw(FALSE);
Karsten Hopp ce3276
  	    ++no_mapping;
Karsten Hopp ce3276
  	    ++allow_keys;
Karsten Hopp ce3276
! 	    c = safe_vgetc();
Karsten Hopp ce3276
  	    --no_mapping;
Karsten Hopp ce3276
  	    --allow_keys;
Karsten Hopp ce3276
  	    if (c != Ctrl_N && c != Ctrl_G && c != Ctrl_O)
Karsten Hopp ce3276
--- 788,794 ----
Karsten Hopp ce3276
  	    ins_redraw(FALSE);
Karsten Hopp ce3276
  	    ++no_mapping;
Karsten Hopp ce3276
  	    ++allow_keys;
Karsten Hopp ce3276
! 	    c = plain_vgetc();
Karsten Hopp ce3276
  	    --no_mapping;
Karsten Hopp ce3276
  	    --allow_keys;
Karsten Hopp ce3276
  	    if (c != Ctrl_N && c != Ctrl_G && c != Ctrl_O)
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 981,987 ****
Karsten Hopp ce3276
  #ifdef FEAT_NETBEANS_INTG
Karsten Hopp ce3276
  	case K_F21:	/* NetBeans command */
Karsten Hopp ce3276
  	    ++no_mapping;		/* don't map the next key hits */
Karsten Hopp ce3276
! 	    i = safe_vgetc();
Karsten Hopp ce3276
  	    --no_mapping;
Karsten Hopp ce3276
  	    netbeans_keycommand(i);
Karsten Hopp ce3276
  	    break;
Karsten Hopp ce3276
--- 981,987 ----
Karsten Hopp ce3276
  #ifdef FEAT_NETBEANS_INTG
Karsten Hopp ce3276
  	case K_F21:	/* NetBeans command */
Karsten Hopp ce3276
  	    ++no_mapping;		/* don't map the next key hits */
Karsten Hopp ce3276
! 	    i = plain_vgetc();
Karsten Hopp ce3276
  	    --no_mapping;
Karsten Hopp ce3276
  	    netbeans_keycommand(i);
Karsten Hopp ce3276
  	    break;
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 5224,5233 ****
Karsten Hopp ce3276
      i = 0;
Karsten Hopp ce3276
      for (;;)
Karsten Hopp ce3276
      {
Karsten Hopp ce3276
! 	do
Karsten Hopp ce3276
! 	    nc = safe_vgetc();
Karsten Hopp ce3276
! 	while (nc == K_IGNORE || nc == K_VER_SCROLLBAR
Karsten Hopp ce3276
! 						    || nc == K_HOR_SCROLLBAR);
Karsten Hopp ce3276
  #ifdef FEAT_CMDL_INFO
Karsten Hopp ce3276
  	if (!(State & CMDLINE)
Karsten Hopp ce3276
  # ifdef FEAT_MBYTE
Karsten Hopp ce3276
--- 5224,5230 ----
Karsten Hopp ce3276
      i = 0;
Karsten Hopp ce3276
      for (;;)
Karsten Hopp ce3276
      {
Karsten Hopp ce3276
! 	nc = plain_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_CMDL_INFO
Karsten Hopp ce3276
  	if (!(State & CMDLINE)
Karsten Hopp ce3276
  # ifdef FEAT_MBYTE
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 7575,7581 ****
Karsten Hopp ce3276
       * deleted when ESC is hit.
Karsten Hopp ce3276
       */
Karsten Hopp ce3276
      ++no_mapping;
Karsten Hopp ce3276
!     regname = safe_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
      LANGMAP_ADJUST(regname, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
--- 7572,7578 ----
Karsten Hopp ce3276
       * deleted when ESC is hit.
Karsten Hopp ce3276
       */
Karsten Hopp ce3276
      ++no_mapping;
Karsten Hopp ce3276
!     regname = plain_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
      LANGMAP_ADJUST(regname, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 7586,7592 ****
Karsten Hopp ce3276
  #ifdef FEAT_CMDL_INFO
Karsten Hopp ce3276
  	add_to_showcmd_c(literally);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
! 	regname = safe_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  	LANGMAP_ADJUST(regname, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
--- 7583,7589 ----
Karsten Hopp ce3276
  #ifdef FEAT_CMDL_INFO
Karsten Hopp ce3276
  	add_to_showcmd_c(literally);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
! 	regname = plain_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  	LANGMAP_ADJUST(regname, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 7677,7683 ****
Karsten Hopp ce3276
       * deleted when ESC is hit.
Karsten Hopp ce3276
       */
Karsten Hopp ce3276
      ++no_mapping;
Karsten Hopp ce3276
!     c = safe_vgetc();
Karsten Hopp ce3276
      --no_mapping;
Karsten Hopp ce3276
      switch (c)
Karsten Hopp ce3276
      {
Karsten Hopp ce3276
--- 7674,7680 ----
Karsten Hopp ce3276
       * deleted when ESC is hit.
Karsten Hopp ce3276
       */
Karsten Hopp ce3276
      ++no_mapping;
Karsten Hopp ce3276
!     c = plain_vgetc();
Karsten Hopp ce3276
      --no_mapping;
Karsten Hopp ce3276
      switch (c)
Karsten Hopp ce3276
      {
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 9356,9362 ****
Karsten Hopp ce3276
       * mode message to be deleted when ESC is hit */
Karsten Hopp ce3276
      ++no_mapping;
Karsten Hopp ce3276
      ++allow_keys;
Karsten Hopp ce3276
!     c = safe_vgetc();
Karsten Hopp ce3276
      --no_mapping;
Karsten Hopp ce3276
      --allow_keys;
Karsten Hopp ce3276
      if (IS_SPECIAL(c) || mod_mask)	    /* special key */
Karsten Hopp ce3276
--- 9353,9359 ----
Karsten Hopp ce3276
       * mode message to be deleted when ESC is hit */
Karsten Hopp ce3276
      ++no_mapping;
Karsten Hopp ce3276
      ++allow_keys;
Karsten Hopp ce3276
!     c = plain_vgetc();
Karsten Hopp ce3276
      --no_mapping;
Karsten Hopp ce3276
      --allow_keys;
Karsten Hopp ce3276
      if (IS_SPECIAL(c) || mod_mask)	    /* special key */
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 9388,9394 ****
Karsten Hopp ce3276
  	}
Karsten Hopp ce3276
  	++no_mapping;
Karsten Hopp ce3276
  	++allow_keys;
Karsten Hopp ce3276
! 	cc = safe_vgetc();
Karsten Hopp ce3276
  	--no_mapping;
Karsten Hopp ce3276
  	--allow_keys;
Karsten Hopp ce3276
  	if (cc != ESC)
Karsten Hopp ce3276
--- 9385,9391 ----
Karsten Hopp ce3276
  	}
Karsten Hopp ce3276
  	++no_mapping;
Karsten Hopp ce3276
  	++allow_keys;
Karsten Hopp ce3276
! 	cc = plain_vgetc();
Karsten Hopp ce3276
  	--no_mapping;
Karsten Hopp ce3276
  	--allow_keys;
Karsten Hopp ce3276
  	if (cc != ESC)
Karsten Hopp ce3276
*** ../vim-7.1.103/src/ex_cmds.c	Tue Aug 21 15:28:32 2007
Karsten Hopp ce3276
--- src/ex_cmds.c	Thu Sep 13 16:19:40 2007
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 4498,4504 ****
Karsten Hopp ce3276
  	     *
Karsten Hopp ce3276
  	     * The new text is built up in new_start[].  It has some extra
Karsten Hopp ce3276
  	     * room to avoid using alloc()/free() too often.  new_start_len is
Karsten Hopp ce3276
! 	     * the lenght of the allocated memory at new_start.
Karsten Hopp ce3276
  	     *
Karsten Hopp ce3276
  	     * Make a copy of the old line, so it won't be taken away when
Karsten Hopp ce3276
  	     * updating the screen or handling a multi-line match.  The "old_"
Karsten Hopp ce3276
--- 4499,4505 ----
Karsten Hopp ce3276
  	     *
Karsten Hopp ce3276
  	     * The new text is built up in new_start[].  It has some extra
Karsten Hopp ce3276
  	     * room to avoid using alloc()/free() too often.  new_start_len is
Karsten Hopp ce3276
! 	     * the length of the allocated memory at new_start.
Karsten Hopp ce3276
  	     *
Karsten Hopp ce3276
  	     * Make a copy of the old line, so it won't be taken away when
Karsten Hopp ce3276
  	     * updating the screen or handling a multi-line match.  The "old_"
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 4669,4675 ****
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
  			    ++no_mapping;	/* don't map this key */
Karsten Hopp ce3276
  			    ++allow_keys;	/* allow special keys */
Karsten Hopp ce3276
! 			    i = safe_vgetc();
Karsten Hopp ce3276
  			    --allow_keys;
Karsten Hopp ce3276
  			    --no_mapping;
Karsten Hopp ce3276
  
Karsten Hopp ce3276
--- 4670,4676 ----
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
  			    ++no_mapping;	/* don't map this key */
Karsten Hopp ce3276
  			    ++allow_keys;	/* allow special keys */
Karsten Hopp ce3276
! 			    i = plain_vgetc();
Karsten Hopp ce3276
  			    --allow_keys;
Karsten Hopp ce3276
  			    --no_mapping;
Karsten Hopp ce3276
  
Karsten Hopp ce3276
*** ../vim-7.1.103/src/ex_getln.c	Mon Aug  6 22:27:12 2007
Karsten Hopp ce3276
--- src/ex_getln.c	Thu Sep 13 16:20:49 2007
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 641,647 ****
Karsten Hopp ce3276
  	{
Karsten Hopp ce3276
  	    ++no_mapping;
Karsten Hopp ce3276
  	    ++allow_keys;
Karsten Hopp ce3276
! 	    c = safe_vgetc();
Karsten Hopp ce3276
  	    --no_mapping;
Karsten Hopp ce3276
  	    --allow_keys;
Karsten Hopp ce3276
  	    /* CTRL-\ e doesn't work when obtaining an expression. */
Karsten Hopp ce3276
--- 641,647 ----
Karsten Hopp ce3276
  	{
Karsten Hopp ce3276
  	    ++no_mapping;
Karsten Hopp ce3276
  	    ++allow_keys;
Karsten Hopp ce3276
! 	    c = plain_vgetc();
Karsten Hopp ce3276
  	    --no_mapping;
Karsten Hopp ce3276
  	    --allow_keys;
Karsten Hopp ce3276
  	    /* CTRL-\ e doesn't work when obtaining an expression. */
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 1091,1101 ****
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
  		putcmdline('"', TRUE);
Karsten Hopp ce3276
  		++no_mapping;
Karsten Hopp ce3276
! 		i = c = safe_vgetc();	/* CTRL-R <char> */
Karsten Hopp ce3276
  		if (i == Ctrl_O)
Karsten Hopp ce3276
  		    i = Ctrl_R;		/* CTRL-R CTRL-O == CTRL-R CTRL-R */
Karsten Hopp ce3276
  		if (i == Ctrl_R)
Karsten Hopp ce3276
! 		    c = safe_vgetc();	/* CTRL-R CTRL-R <char> */
Karsten Hopp ce3276
  		--no_mapping;
Karsten Hopp ce3276
  #ifdef FEAT_EVAL
Karsten Hopp ce3276
  		/*
Karsten Hopp ce3276
--- 1091,1101 ----
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
  		putcmdline('"', TRUE);
Karsten Hopp ce3276
  		++no_mapping;
Karsten Hopp ce3276
! 		i = c = plain_vgetc();	/* CTRL-R <char> */
Karsten Hopp ce3276
  		if (i == Ctrl_O)
Karsten Hopp ce3276
  		    i = Ctrl_R;		/* CTRL-R CTRL-O == CTRL-R CTRL-R */
Karsten Hopp ce3276
  		if (i == Ctrl_R)
Karsten Hopp ce3276
! 		    c = plain_vgetc();	/* CTRL-R CTRL-R <char> */
Karsten Hopp ce3276
  		--no_mapping;
Karsten Hopp ce3276
  #ifdef FEAT_EVAL
Karsten Hopp ce3276
  		/*
Karsten Hopp ce3276
*** ../vim-7.1.103/src/getchar.c	Wed Sep  5 21:45:54 2007
Karsten Hopp ce3276
--- src/getchar.c	Thu Sep 13 16:16:53 2007
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 1597,1608 ****
Karsten Hopp ce3276
  	    }
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
  #ifdef FEAT_GUI
Karsten Hopp ce3276
! 	    /* The caller doesn't need to know that the focus event is delayed
Karsten Hopp ce3276
! 	     * until getting a character. */
Karsten Hopp ce3276
  	    if (c == K_FOCUSGAINED || c == K_FOCUSLOST)
Karsten Hopp ce3276
  	    {
Karsten Hopp ce3276
  		ui_focus_change(c == K_FOCUSGAINED);
Karsten Hopp ce3276
! 		continue;
Karsten Hopp ce3276
  	    }
Karsten Hopp ce3276
  
Karsten Hopp ce3276
  	    /* Translate K_CSI to CSI.  The special key is only used to avoid
Karsten Hopp ce3276
--- 1597,1609 ----
Karsten Hopp ce3276
  	    }
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
  #ifdef FEAT_GUI
Karsten Hopp ce3276
! 	    /* Handle focus event here, so that the caller doesn't need to
Karsten Hopp ce3276
! 	     * know about it.  Return K_IGNORE so that we loop once (needed if
Karsten Hopp ce3276
! 	     * 'lazyredraw' is set). */
Karsten Hopp ce3276
  	    if (c == K_FOCUSGAINED || c == K_FOCUSLOST)
Karsten Hopp ce3276
  	    {
Karsten Hopp ce3276
  		ui_focus_change(c == K_FOCUSGAINED);
Karsten Hopp ce3276
! 		c = K_IGNORE;
Karsten Hopp ce3276
  	    }
Karsten Hopp ce3276
  
Karsten Hopp ce3276
  	    /* Translate K_CSI to CSI.  The special key is only used to avoid
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 1744,1749 ****
Karsten Hopp ce3276
--- 1745,1766 ----
Karsten Hopp ce3276
      c = vgetc();
Karsten Hopp ce3276
      if (c == NUL)
Karsten Hopp ce3276
  	c = get_keystroke();
Karsten Hopp ce3276
+     return c;
Karsten Hopp ce3276
+ }
Karsten Hopp ce3276
+ 
Karsten Hopp ce3276
+ /*
Karsten Hopp ce3276
+  * Like safe_vgetc(), but loop to handle K_IGNORE.
Karsten Hopp ce3276
+  * Also ignore scrollbar events.
Karsten Hopp ce3276
+  */
Karsten Hopp ce3276
+     int
Karsten Hopp ce3276
+ plain_vgetc()
Karsten Hopp ce3276
+ {
Karsten Hopp ce3276
+     int c;
Karsten Hopp ce3276
+ 
Karsten Hopp ce3276
+     do
Karsten Hopp ce3276
+     {
Karsten Hopp ce3276
+ 	c = safe_vgetc();
Karsten Hopp ce3276
+     } while (c == K_IGNORE || c == K_VER_SCROLLBAR || c == K_HOR_SCROLLBAR);
Karsten Hopp ce3276
      return c;
Karsten Hopp ce3276
  }
Karsten Hopp ce3276
  
Karsten Hopp ce3276
*** ../vim-7.1.103/src/normal.c	Thu Sep 13 15:33:18 2007
Karsten Hopp ce3276
--- src/normal.c	Thu Sep 13 16:24:51 2007
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 696,702 ****
Karsten Hopp ce3276
  		++allow_keys;		/* no mapping for nchar, but keys */
Karsten Hopp ce3276
  	    }
Karsten Hopp ce3276
  	    ++no_zero_mapping;		/* don't map zero here */
Karsten Hopp ce3276
! 	    c = safe_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  	    LANGMAP_ADJUST(c, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
--- 696,702 ----
Karsten Hopp ce3276
  		++allow_keys;		/* no mapping for nchar, but keys */
Karsten Hopp ce3276
  	    }
Karsten Hopp ce3276
  	    ++no_zero_mapping;		/* don't map zero here */
Karsten Hopp ce3276
! 	    c = plain_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  	    LANGMAP_ADJUST(c, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 721,727 ****
Karsten Hopp ce3276
  	    ca.count0 = 0;
Karsten Hopp ce3276
  	    ++no_mapping;
Karsten Hopp ce3276
  	    ++allow_keys;		/* no mapping for nchar, but keys */
Karsten Hopp ce3276
! 	    c = safe_vgetc();		/* get next character */
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  	    LANGMAP_ADJUST(c, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
--- 721,727 ----
Karsten Hopp ce3276
  	    ca.count0 = 0;
Karsten Hopp ce3276
  	    ++no_mapping;
Karsten Hopp ce3276
  	    ++allow_keys;		/* no mapping for nchar, but keys */
Karsten Hopp ce3276
! 	    c = plain_vgetc();		/* get next character */
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  	    LANGMAP_ADJUST(c, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 900,906 ****
Karsten Hopp ce3276
  	     * For 'g' get the next character now, so that we can check for
Karsten Hopp ce3276
  	     * "gr", "g'" and "g`".
Karsten Hopp ce3276
  	     */
Karsten Hopp ce3276
! 	    ca.nchar = safe_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  	    LANGMAP_ADJUST(ca.nchar, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
--- 900,906 ----
Karsten Hopp ce3276
  	     * For 'g' get the next character now, so that we can check for
Karsten Hopp ce3276
  	     * "gr", "g'" and "g`".
Karsten Hopp ce3276
  	     */
Karsten Hopp ce3276
! 	    ca.nchar = plain_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  	    LANGMAP_ADJUST(ca.nchar, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 957,963 ****
Karsten Hopp ce3276
  		im_set_active(TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
  
Karsten Hopp ce3276
! 	    *cp = safe_vgetc();
Karsten Hopp ce3276
  
Karsten Hopp ce3276
  	    if (langmap_active)
Karsten Hopp ce3276
  	    {
Karsten Hopp ce3276
--- 957,963 ----
Karsten Hopp ce3276
  		im_set_active(TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
  
Karsten Hopp ce3276
! 	    *cp = plain_vgetc();
Karsten Hopp ce3276
  
Karsten Hopp ce3276
  	    if (langmap_active)
Karsten Hopp ce3276
  	    {
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 1045,1051 ****
Karsten Hopp ce3276
  		}
Karsten Hopp ce3276
  		if (c > 0)
Karsten Hopp ce3276
  		{
Karsten Hopp ce3276
! 		    c = safe_vgetc();
Karsten Hopp ce3276
  		    if (c != Ctrl_N && c != Ctrl_G)
Karsten Hopp ce3276
  			vungetc(c);
Karsten Hopp ce3276
  		    else
Karsten Hopp ce3276
--- 1045,1051 ----
Karsten Hopp ce3276
  		}
Karsten Hopp ce3276
  		if (c > 0)
Karsten Hopp ce3276
  		{
Karsten Hopp ce3276
! 		    c = plain_vgetc();
Karsten Hopp ce3276
  		    if (c != Ctrl_N && c != Ctrl_G)
Karsten Hopp ce3276
  			vungetc(c);
Karsten Hopp ce3276
  		    else
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 1064,1070 ****
Karsten Hopp ce3276
  	    while (enc_utf8 && lang && (c = vpeekc()) > 0
Karsten Hopp ce3276
  				 && (c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1))
Karsten Hopp ce3276
  	    {
Karsten Hopp ce3276
! 		c = safe_vgetc();
Karsten Hopp ce3276
  		if (!utf_iscomposing(c))
Karsten Hopp ce3276
  		{
Karsten Hopp ce3276
  		    vungetc(c);		/* it wasn't, put it back */
Karsten Hopp ce3276
--- 1064,1070 ----
Karsten Hopp ce3276
  	    while (enc_utf8 && lang && (c = vpeekc()) > 0
Karsten Hopp ce3276
  				 && (c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1))
Karsten Hopp ce3276
  	    {
Karsten Hopp ce3276
! 		c = plain_vgetc();
Karsten Hopp ce3276
  		if (!utf_iscomposing(c))
Karsten Hopp ce3276
  		{
Karsten Hopp ce3276
  		    vungetc(c);		/* it wasn't, put it back */
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 4564,4570 ****
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
  	    ++no_mapping;
Karsten Hopp ce3276
  	    ++allow_keys;   /* no mapping for nchar, but allow key codes */
Karsten Hopp ce3276
! 	    nchar = safe_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  	    LANGMAP_ADJUST(nchar, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
--- 4564,4570 ----
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
  	    ++no_mapping;
Karsten Hopp ce3276
  	    ++allow_keys;   /* no mapping for nchar, but allow key codes */
Karsten Hopp ce3276
! 	    nchar = plain_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  	    LANGMAP_ADJUST(nchar, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 4922,4928 ****
Karsten Hopp ce3276
      case 'u':	/* "zug" and "zuw": undo "zg" and "zw" */
Karsten Hopp ce3276
  		++no_mapping;
Karsten Hopp ce3276
  		++allow_keys;   /* no mapping for nchar, but allow key codes */
Karsten Hopp ce3276
! 		nchar = safe_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  		LANGMAP_ADJUST(nchar, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
--- 4922,4928 ----
Karsten Hopp ce3276
      case 'u':	/* "zug" and "zuw": undo "zg" and "zw" */
Karsten Hopp ce3276
  		++no_mapping;
Karsten Hopp ce3276
  		++allow_keys;   /* no mapping for nchar, but allow key codes */
Karsten Hopp ce3276
! 		nchar = plain_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  		LANGMAP_ADJUST(nchar, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
*** ../vim-7.1.103/src/proto/getchar.pro	Sun May  6 15:04:24 2007
Karsten Hopp ce3276
--- src/proto/getchar.pro	Thu Sep 13 16:13:19 2007
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 38,43 ****
Karsten Hopp ce3276
--- 38,44 ----
Karsten Hopp ce3276
  void updatescript __ARGS((int c));
Karsten Hopp ce3276
  int vgetc __ARGS((void));
Karsten Hopp ce3276
  int safe_vgetc __ARGS((void));
Karsten Hopp ce3276
+ int plain_vgetc __ARGS((void));
Karsten Hopp ce3276
  int vpeekc __ARGS((void));
Karsten Hopp ce3276
  int vpeekc_nomap __ARGS((void));
Karsten Hopp ce3276
  int vpeekc_any __ARGS((void));
Karsten Hopp ce3276
*** ../vim-7.1.103/src/window.c	Sun Aug 12 16:55:01 2007
Karsten Hopp ce3276
--- src/window.c	Thu Sep 13 16:25:01 2007
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 584,590 ****
Karsten Hopp ce3276
  		++no_mapping;
Karsten Hopp ce3276
  		++allow_keys;   /* no mapping for xchar, but allow key codes */
Karsten Hopp ce3276
  		if (xchar == NUL)
Karsten Hopp ce3276
! 		    xchar = safe_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  		LANGMAP_ADJUST(xchar, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
--- 584,590 ----
Karsten Hopp ce3276
  		++no_mapping;
Karsten Hopp ce3276
  		++allow_keys;   /* no mapping for xchar, but allow key codes */
Karsten Hopp ce3276
  		if (xchar == NUL)
Karsten Hopp ce3276
! 		    xchar = plain_vgetc();
Karsten Hopp ce3276
  #ifdef FEAT_LANGMAP
Karsten Hopp ce3276
  		LANGMAP_ADJUST(xchar, TRUE);
Karsten Hopp ce3276
  #endif
Karsten Hopp ce3276
*** ../vim-7.1.103/src/version.c	Thu Sep 13 15:33:18 2007
Karsten Hopp ce3276
--- src/version.c	Thu Sep 13 18:22:59 2007
Karsten Hopp ce3276
***************
Karsten Hopp ce3276
*** 668,669 ****
Karsten Hopp ce3276
--- 668,671 ----
Karsten Hopp ce3276
  {   /* Add new patch number below this line */
Karsten Hopp ce3276
+ /**/
Karsten Hopp ce3276
+     104,
Karsten Hopp ce3276
  /**/
Karsten Hopp ce3276
Karsten Hopp ce3276
-- 
Karsten Hopp ce3276
ARTHUR:  I am your king!
Karsten Hopp ce3276
WOMAN:   Well, I didn't vote for you.
Karsten Hopp ce3276
ARTHUR:  You don't vote for kings.
Karsten Hopp ce3276
WOMAN:   Well, 'ow did you become king then?
Karsten Hopp ce3276
                                  The Quest for the Holy Grail (Monty Python)
Karsten Hopp ce3276
Karsten Hopp ce3276
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp ce3276
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp ce3276
\\\        download, build and distribute -- http://www.A-A-P.org        ///
Karsten Hopp ce3276
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///