diff options
author | Bram Moolenaar <Bram@vim.org> | 2008-01-01 13:17:56 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2008-01-01 13:17:56 +0000 |
commit | ee3f7a51c8a2eadde419971cb5a9e01336752a52 (patch) | |
tree | fdb57286c8c7602a32f0b08c60c11cc3162c0031 | |
parent | 4f246a9a2aa45b68644a3adb7cabe2eac18f483e (diff) | |
download | vim-git-ee3f7a51c8a2eadde419971cb5a9e01336752a52.tar.gz |
updated for version 7.1-177v7.1.177
-rw-r--r-- | src/ex_cmds2.c | 14 | ||||
-rw-r--r-- | src/getchar.c | 27 | ||||
-rw-r--r-- | src/globals.h | 3 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 38 insertions, 8 deletions
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c index add7adb3a..884220ef3 100644 --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -93,6 +93,8 @@ do_debug(cmd) 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,18 +161,26 @@ do_debug(cmd) * 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. */ + * 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 (!debug_greedy) + if (typeahead_saved) + { restore_typeahead(&typeaheadbuf); + ignore_script = save_ignore_script; + } # ifdef FEAT_EX_EXTRA ex_normal_busy = save_ex_normal_busy; # endif diff --git a/src/getchar.c b/src/getchar.c index 0e78a7bd8..d1c70c9db 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -1279,8 +1279,14 @@ alloc_typebuf() void free_typebuf() { - vim_free(typebuf.tb_buf); - vim_free(typebuf.tb_noremap); + 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,6 +1365,11 @@ openscript(name, directly) 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,7 +2357,7 @@ vgetorpeek(advance) current_menu->silent[idx]); } } -#endif /* FEAT_GUI */ +#endif /* FEAT_GUI && FEAT_MENU */ continue; /* try mapping again */ } @@ -2862,11 +2873,15 @@ inchar(buf, maxlen, wait_time, tb_change_cnt) undo_off = FALSE; /* restart undo now */ /* - * first try script file - * If interrupted: Stop reading script files. + * 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) + while (scriptin[curscript] != NULL && script_char < 0 +#ifdef FEAT_EVAL + && !ignore_script +#endif + ) { if (got_int || (script_char = getc(scriptin[curscript])) < 0) { diff --git a/src/globals.h b/src/globals.h index 7fec4e643..a77f14b07 100644 --- a/src/globals.h +++ b/src/globals.h @@ -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_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 */ diff --git a/src/version.c b/src/version.c index 531c12672..e20349dc9 100644 --- a/src/version.c +++ b/src/version.c @@ -667,6 +667,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 177, +/**/ 176, /**/ 175, |