1
0
forked from aniani/vim

updated for version 7.1-177

This commit is contained in:
Bram Moolenaar
2008-01-01 13:17:56 +00:00
parent 4f246a9a2a
commit ee3f7a51c8
4 changed files with 38 additions and 8 deletions

View File

@@ -93,6 +93,8 @@ do_debug(cmd)
int save_emsg_silent = emsg_silent; int save_emsg_silent = emsg_silent;
int save_redir_off = redir_off; int save_redir_off = redir_off;
tasave_T typeaheadbuf; tasave_T typeaheadbuf;
int typeahead_saved = FALSE;
int save_ignore_script;
# ifdef FEAT_EX_EXTRA # ifdef FEAT_EX_EXTRA
int save_ex_normal_busy; int save_ex_normal_busy;
# endif # endif
@@ -159,18 +161,26 @@ do_debug(cmd)
* This makes sure we get input from the user here and don't interfere * 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 * with the commands being executed. Reset "ex_normal_busy" to avoid
* the side effects of using ":normal". Save the stuff buffer and make * the side effects of using ":normal". Save the stuff buffer and make
* it empty. */ * it empty. Set ignore_script to avoid reading from script input. */
# ifdef FEAT_EX_EXTRA # ifdef FEAT_EX_EXTRA
save_ex_normal_busy = ex_normal_busy; save_ex_normal_busy = ex_normal_busy;
ex_normal_busy = 0; ex_normal_busy = 0;
# endif # endif
if (!debug_greedy) if (!debug_greedy)
{
save_typeahead(&typeaheadbuf); save_typeahead(&typeaheadbuf);
typeahead_saved = TRUE;
save_ignore_script = ignore_script;
ignore_script = TRUE;
}
cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL); cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL);
if (!debug_greedy) if (typeahead_saved)
{
restore_typeahead(&typeaheadbuf); restore_typeahead(&typeaheadbuf);
ignore_script = save_ignore_script;
}
# ifdef FEAT_EX_EXTRA # ifdef FEAT_EX_EXTRA
ex_normal_busy = save_ex_normal_busy; ex_normal_busy = save_ex_normal_busy;
# endif # endif

View File

@@ -1279,7 +1279,13 @@ alloc_typebuf()
void void
free_typebuf() free_typebuf()
{ {
if (typebuf.tb_buf == typebuf_init)
EMSG2(_(e_intern2), "Free typebuf 1");
else
vim_free(typebuf.tb_buf); vim_free(typebuf.tb_buf);
if (typebuf.tb_buf == noremapbuf_init)
EMSG2(_(e_intern2), "Free typebuf 2");
else
vim_free(typebuf.tb_noremap); vim_free(typebuf.tb_noremap);
} }
@@ -1359,6 +1365,11 @@ openscript(name, directly)
EMSG(_(e_nesting)); EMSG(_(e_nesting));
return; 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 */ if (scriptin[curscript] != NULL) /* already reading script */
++curscript; ++curscript;
@@ -2346,7 +2357,7 @@ vgetorpeek(advance)
current_menu->silent[idx]); current_menu->silent[idx]);
} }
} }
#endif /* FEAT_GUI */ #endif /* FEAT_GUI && FEAT_MENU */
continue; /* try mapping again */ continue; /* try mapping again */
} }
@@ -2862,11 +2873,15 @@ inchar(buf, maxlen, wait_time, tb_change_cnt)
undo_off = FALSE; /* restart undo now */ undo_off = FALSE; /* restart undo now */
/* /*
* first try script file * Get a character from a script file if there is one.
* If interrupted: Stop reading script files. * If interrupted: Stop reading script files, close them all.
*/ */
script_char = -1; script_char = -1;
while (scriptin[curscript] != NULL && script_char < 0) while (scriptin[curscript] != NULL && script_char < 0
#ifdef FEAT_EVAL
&& !ignore_script
#endif
)
{ {
if (got_int || (script_char = getc(scriptin[curscript])) < 0) if (got_int || (script_char = getc(scriptin[curscript])) < 0)
{ {

View File

@@ -954,6 +954,9 @@ EXTERN typebuf_T typebuf /* typeahead buffer */
EXTERN int ex_normal_busy INIT(= 0); /* recursiveness of ex_normal() */ EXTERN int ex_normal_busy INIT(= 0); /* recursiveness of ex_normal() */
EXTERN int ex_normal_lock INIT(= 0); /* forbid use of ex_normal() */ EXTERN int ex_normal_lock INIT(= 0); /* forbid use of ex_normal() */
#endif #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 stop_insert_mode; /* for ":stopinsert" and 'insertmode' */
EXTERN int KeyTyped; /* TRUE if user typed current char */ EXTERN int KeyTyped; /* TRUE if user typed current char */

View File

@@ -666,6 +666,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
177,
/**/ /**/
176, 176,
/**/ /**/