- patchlevel 177
This commit is contained in:
parent
674ffb990c
commit
6633b19b38
193
7.1.177
Normal file
193
7.1.177
Normal file
@ -0,0 +1,193 @@
|
||||
To: vim-dev@vim.org
|
||||
Subject: Patch 7.1.177
|
||||
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.177
|
||||
Problem: Freeing memory twice when in debug mode while reading a script.
|
||||
Solution: Ignore script input while in debug mode.
|
||||
Files: src/ex_cmds2.c, src/getchar.c, src/globals.h
|
||||
|
||||
|
||||
*** ../vim-7.1.176/src/ex_cmds2.c Thu May 10 20:55:46 2007
|
||||
--- src/ex_cmds2.c Tue Jan 1 14:13:41 2008
|
||||
***************
|
||||
*** 93,98 ****
|
||||
--- 93,100 ----
|
||||
int save_emsg_silent = emsg_silent;
|
||||
int save_redir_off = redir_off;
|
||||
tasave_T typeaheadbuf;
|
||||
+ int typeahead_saved = FALSE;
|
||||
+ int save_ignore_script;
|
||||
# ifdef FEAT_EX_EXTRA
|
||||
int save_ex_normal_busy;
|
||||
# endif
|
||||
***************
|
||||
*** 159,176 ****
|
||||
* This makes sure we get input from the user here and don't interfere
|
||||
* with the commands being executed. Reset "ex_normal_busy" to avoid
|
||||
* the side effects of using ":normal". Save the stuff buffer and make
|
||||
! * it empty. */
|
||||
# ifdef FEAT_EX_EXTRA
|
||||
save_ex_normal_busy = ex_normal_busy;
|
||||
ex_normal_busy = 0;
|
||||
# endif
|
||||
if (!debug_greedy)
|
||||
save_typeahead(&typeaheadbuf);
|
||||
|
||||
cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL);
|
||||
|
||||
! if (!debug_greedy)
|
||||
restore_typeahead(&typeaheadbuf);
|
||||
# ifdef FEAT_EX_EXTRA
|
||||
ex_normal_busy = save_ex_normal_busy;
|
||||
# endif
|
||||
--- 161,186 ----
|
||||
* This makes sure we get input from the user here and don't interfere
|
||||
* with the commands being executed. Reset "ex_normal_busy" to avoid
|
||||
* the side effects of using ":normal". Save the stuff buffer and make
|
||||
! * it empty. Set ignore_script to avoid reading from script input. */
|
||||
# ifdef FEAT_EX_EXTRA
|
||||
save_ex_normal_busy = ex_normal_busy;
|
||||
ex_normal_busy = 0;
|
||||
# endif
|
||||
if (!debug_greedy)
|
||||
+ {
|
||||
save_typeahead(&typeaheadbuf);
|
||||
+ typeahead_saved = TRUE;
|
||||
+ save_ignore_script = ignore_script;
|
||||
+ ignore_script = TRUE;
|
||||
+ }
|
||||
|
||||
cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL);
|
||||
|
||||
! if (typeahead_saved)
|
||||
! {
|
||||
restore_typeahead(&typeaheadbuf);
|
||||
+ ignore_script = save_ignore_script;
|
||||
+ }
|
||||
# ifdef FEAT_EX_EXTRA
|
||||
ex_normal_busy = save_ex_normal_busy;
|
||||
# endif
|
||||
*** ../vim-7.1.176/src/getchar.c Fri Dec 7 17:30:04 2007
|
||||
--- src/getchar.c Tue Jan 1 14:11:42 2008
|
||||
***************
|
||||
*** 1279,1286 ****
|
||||
void
|
||||
free_typebuf()
|
||||
{
|
||||
! vim_free(typebuf.tb_buf);
|
||||
! vim_free(typebuf.tb_noremap);
|
||||
}
|
||||
|
||||
/*
|
||||
--- 1279,1292 ----
|
||||
void
|
||||
free_typebuf()
|
||||
{
|
||||
! if (typebuf.tb_buf == typebuf_init)
|
||||
! EMSG2(_(e_intern2), "Free typebuf 1");
|
||||
! else
|
||||
! vim_free(typebuf.tb_buf);
|
||||
! if (typebuf.tb_buf == noremapbuf_init)
|
||||
! EMSG2(_(e_intern2), "Free typebuf 2");
|
||||
! else
|
||||
! vim_free(typebuf.tb_noremap);
|
||||
}
|
||||
|
||||
/*
|
||||
***************
|
||||
*** 1359,1364 ****
|
||||
--- 1365,1375 ----
|
||||
EMSG(_(e_nesting));
|
||||
return;
|
||||
}
|
||||
+ #ifdef FEAT_EVAL
|
||||
+ if (ignore_script)
|
||||
+ /* Not reading from script, also don't open one. Warning message? */
|
||||
+ return;
|
||||
+ #endif
|
||||
|
||||
if (scriptin[curscript] != NULL) /* already reading script */
|
||||
++curscript;
|
||||
***************
|
||||
*** 2346,2352 ****
|
||||
current_menu->silent[idx]);
|
||||
}
|
||||
}
|
||||
! #endif /* FEAT_GUI */
|
||||
continue; /* try mapping again */
|
||||
}
|
||||
|
||||
--- 2357,2363 ----
|
||||
current_menu->silent[idx]);
|
||||
}
|
||||
}
|
||||
! #endif /* FEAT_GUI && FEAT_MENU */
|
||||
continue; /* try mapping again */
|
||||
}
|
||||
|
||||
***************
|
||||
*** 2862,2872 ****
|
||||
undo_off = FALSE; /* restart undo now */
|
||||
|
||||
/*
|
||||
! * first try script file
|
||||
! * If interrupted: Stop reading script files.
|
||||
*/
|
||||
script_char = -1;
|
||||
! while (scriptin[curscript] != NULL && script_char < 0)
|
||||
{
|
||||
if (got_int || (script_char = getc(scriptin[curscript])) < 0)
|
||||
{
|
||||
--- 2873,2887 ----
|
||||
undo_off = FALSE; /* restart undo now */
|
||||
|
||||
/*
|
||||
! * Get a character from a script file if there is one.
|
||||
! * If interrupted: Stop reading script files, close them all.
|
||||
*/
|
||||
script_char = -1;
|
||||
! while (scriptin[curscript] != NULL && script_char < 0
|
||||
! #ifdef FEAT_EVAL
|
||||
! && !ignore_script
|
||||
! #endif
|
||||
! )
|
||||
{
|
||||
if (got_int || (script_char = getc(scriptin[curscript])) < 0)
|
||||
{
|
||||
*** ../vim-7.1.176/src/globals.h Sat Sep 29 14:15:00 2007
|
||||
--- src/globals.h Mon Dec 31 17:00:21 2007
|
||||
***************
|
||||
*** 954,959 ****
|
||||
--- 954,962 ----
|
||||
EXTERN int ex_normal_busy INIT(= 0); /* recursiveness of ex_normal() */
|
||||
EXTERN int ex_normal_lock INIT(= 0); /* forbid use of ex_normal() */
|
||||
#endif
|
||||
+ #ifdef FEAT_EVAL
|
||||
+ EXTERN int ignore_script INIT(= FALSE); /* ignore script input */
|
||||
+ #endif
|
||||
EXTERN int stop_insert_mode; /* for ":stopinsert" and 'insertmode' */
|
||||
|
||||
EXTERN int KeyTyped; /* TRUE if user typed current char */
|
||||
*** ../vim-7.1.176/src/version.c Mon Dec 31 16:41:31 2007
|
||||
--- src/version.c Tue Jan 1 14:00:09 2008
|
||||
***************
|
||||
*** 668,669 ****
|
||||
--- 668,671 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 177,
|
||||
/**/
|
||||
|
||||
--
|
||||
Back up my hard drive? I can't find the reverse switch!
|
||||
|
||||
/// 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 ///
|
Loading…
Reference in New Issue
Block a user