astepano / rpms / vim

Forked from rpms/vim 6 years ago
Clone
6fd6d84
To: vim-dev@vim.org
6fd6d84
Subject: patch 7.1.059
6fd6d84
Fcc: outbox
6fd6d84
From: Bram Moolenaar <Bram@moolenaar.net>
6fd6d84
Mime-Version: 1.0
6fd6d84
Content-Type: text/plain; charset=ISO-8859-1
6fd6d84
Content-Transfer-Encoding: 8bit
6fd6d84
------------
6fd6d84
6fd6d84
Patch 7.1.059
6fd6d84
Problem:    When in Ex mode and doing "g/^/vi" and then pressing CTRL-C Vim
6fd6d84
	    hangs and beeps. (Antony Scriven)
6fd6d84
Solution:   Clear "got_int" in the main loop to avoid the hang.  When typing
6fd6d84
	    CTRL-C twice in a row abort the ":g" command.  This is Vi
6fd6d84
	    compatible.
6fd6d84
Files:	    src/main.c
6fd6d84
6fd6d84
6fd6d84
*** ../vim-7.1.058/src/main.c	Tue Jun 19 20:30:46 2007
6fd6d84
--- src/main.c	Tue Aug  7 22:40:35 2007
6fd6d84
***************
6fd6d84
*** 954,960 ****
6fd6d84
      int		cmdwin;	    /* TRUE when working in the command-line window */
6fd6d84
      int		noexmode;   /* TRUE when return on entering Ex mode */
6fd6d84
  {
6fd6d84
!     oparg_T	oa;	/* operator arguments */
6fd6d84
  
6fd6d84
  #if defined(FEAT_X11) && defined(FEAT_XCLIPBOARD)
6fd6d84
      /* Setup to catch a terminating error from the X server.  Just ignore
6fd6d84
--- 954,961 ----
6fd6d84
      int		cmdwin;	    /* TRUE when working in the command-line window */
6fd6d84
      int		noexmode;   /* TRUE when return on entering Ex mode */
6fd6d84
  {
6fd6d84
!     oparg_T	oa;				/* operator arguments */
6fd6d84
!     int		previous_got_int = FALSE;	/* "got_int" was TRUE */
6fd6d84
  
6fd6d84
  #if defined(FEAT_X11) && defined(FEAT_XCLIPBOARD)
6fd6d84
      /* Setup to catch a terminating error from the X server.  Just ignore
6fd6d84
***************
6fd6d84
*** 1015,1026 ****
6fd6d84
  		need_fileinfo = FALSE;
6fd6d84
  	    }
6fd6d84
  	}
6fd6d84
! 	if (got_int && !global_busy)
6fd6d84
  	{
6fd6d84
! 	    if (!quit_more)
6fd6d84
! 		(void)vgetc();		/* flush all buffers */
6fd6d84
! 	    got_int = FALSE;
6fd6d84
  	}
6fd6d84
  	if (!exmode_active)
6fd6d84
  	    msg_scroll = FALSE;
6fd6d84
  	quit_more = FALSE;
6fd6d84
--- 1016,1047 ----
6fd6d84
  		need_fileinfo = FALSE;
6fd6d84
  	    }
6fd6d84
  	}
6fd6d84
! 
6fd6d84
! 	/* Reset "got_int" now that we got back to the main loop.  Except when
6fd6d84
! 	 * inside a ":g/pat/cmd" command, then the "got_int" needs to abort
6fd6d84
! 	 * the ":g" command.
6fd6d84
! 	 * For ":g/pat/vi" we reset "got_int" when used once.  When used
6fd6d84
! 	 * a second time we go back to Ex mode and abort the ":g" command. */
6fd6d84
! 	if (got_int)
6fd6d84
  	{
6fd6d84
! 	    if (noexmode && global_busy && !exmode_active && previous_got_int)
6fd6d84
! 	    {
6fd6d84
! 		/* Typed two CTRL-C in a row: go back to ex mode as if "Q" was
6fd6d84
! 		 * used and keep "got_int" set, so that it aborts ":g". */
6fd6d84
! 		exmode_active = EXMODE_NORMAL;
6fd6d84
! 		State = NORMAL;
6fd6d84
! 	    }
6fd6d84
! 	    else if (!global_busy || !exmode_active)
6fd6d84
! 	    {
6fd6d84
! 		if (!quit_more)
6fd6d84
! 		    (void)vgetc();		/* flush all buffers */
6fd6d84
! 		got_int = FALSE;
6fd6d84
! 	    }
6fd6d84
! 	    previous_got_int = TRUE;
6fd6d84
  	}
6fd6d84
+ 	else
6fd6d84
+ 	    previous_got_int = FALSE;
6fd6d84
+ 
6fd6d84
  	if (!exmode_active)
6fd6d84
  	    msg_scroll = FALSE;
6fd6d84
  	quit_more = FALSE;
6fd6d84
*** ../vim-7.1.058/src/version.c	Wed Aug  8 22:48:16 2007
6fd6d84
--- src/version.c	Fri Aug 10 21:30:39 2007
6fd6d84
***************
6fd6d84
*** 668,669 ****
6fd6d84
--- 668,671 ----
6fd6d84
  {   /* Add new patch number below this line */
6fd6d84
+ /**/
6fd6d84
+     59,
6fd6d84
  /**/
6fd6d84
6fd6d84
-- 
6fd6d84
hundred-and-one symptoms of being an internet addict:
6fd6d84
116. You are living with your boyfriend who networks your respective
6fd6d84
     computers so you can sit in separate rooms and email each other
6fd6d84
6fd6d84
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
6fd6d84
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
6fd6d84
\\\        download, build and distribute -- http://www.A-A-P.org        ///
6fd6d84
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///