summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0282
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0282')
-rw-r--r--data/vim/patches/8.1.0282507
1 files changed, 0 insertions, 507 deletions
diff --git a/data/vim/patches/8.1.0282 b/data/vim/patches/8.1.0282
deleted file mode 100644
index 7b827f49f..000000000
--- a/data/vim/patches/8.1.0282
+++ /dev/null
@@ -1,507 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 8.1.0282
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 8.1.0282
-Problem: 'incsearch' does not work with command modifiers.
-Solution: Skip command modifiers.
-Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/ex_getln.c,
- src/testdir/test_search.vim
-
-
-*** ../vim-8.1.0281/src/ex_docmd.c 2018-08-14 13:38:12.744559267 +0200
---- src/ex_docmd.c 2018-08-14 16:00:53.341893598 +0200
-***************
-*** 68,73 ****
---- 68,74 ----
- static char_u *do_one_cmd(char_u **, int, char_u *(*fgetline)(int, void *, int), void *cookie);
- static int if_level = 0; /* depth in :if */
- #endif
-+ static void free_cmdmod(void);
- static void append_command(char_u *cmd);
- static char_u *find_command(exarg_T *eap, int *full);
-
-***************
-*** 1741,1750 ****
- if ((*cmdlinep)[0] == '#' && (*cmdlinep)[1] == '!')
- goto doend;
-
-! /*
-! * Repeat until no more command modifiers are found.
-! * The "ea" structure holds the arguments that can be used.
-! */
- ea.cmd = *cmdlinep;
- ea.cmdlinep = cmdlinep;
- ea.getline = fgetline;
---- 1742,1752 ----
- if ((*cmdlinep)[0] == '#' && (*cmdlinep)[1] == '!')
- goto doend;
-
-! /*
-! * 1. Skip comment lines and leading white space and colons.
-! * 2. Handle command modifiers.
-! */
-! // The "ea" structure holds the arguments that can be used.
- ea.cmd = *cmdlinep;
- ea.cmdlinep = cmdlinep;
- ea.getline = fgetline;
-***************
-*** 1752,1758 ****
- #ifdef FEAT_EVAL
- ea.cstack = cstack;
- #endif
-! if (parse_command_modifiers(&ea, &errormsg) == FAIL)
- goto doend;
-
- after_modifier = ea.cmd;
---- 1754,1760 ----
- #ifdef FEAT_EVAL
- ea.cstack = cstack;
- #endif
-! if (parse_command_modifiers(&ea, &errormsg, FALSE) == FAIL)
- goto doend;
-
- after_modifier = ea.cmd;
-***************
-*** 2553,2569 ****
- if (ea.verbose_save >= 0)
- p_verbose = ea.verbose_save;
-
-! if (cmdmod.save_ei != NULL)
-! {
-! /* Restore 'eventignore' to the value before ":noautocmd". */
-! set_string_option_direct((char_u *)"ei", -1, cmdmod.save_ei,
-! OPT_FREE, SID_NONE);
-! free_string_option(cmdmod.save_ei);
-! }
-!
-! if (cmdmod.filter_regmatch.regprog != NULL)
-! vim_regfree(cmdmod.filter_regmatch.regprog);
-!
- cmdmod = save_cmdmod;
-
- if (ea.save_msg_silent != -1)
---- 2555,2561 ----
- if (ea.verbose_save >= 0)
- p_verbose = ea.verbose_save;
-
-! free_cmdmod();
- cmdmod = save_cmdmod;
-
- if (ea.save_msg_silent != -1)
-***************
-*** 2609,2621 ****
- * - store flags in "cmdmod".
- * - Set ex_pressedreturn for an empty command line.
- * - set msg_silent for ":silent"
- * - set p_verbose for ":verbose"
- * - Increment "sandbox" for ":sandbox"
- * Return FAIL when the command is not to be executed.
- * May set "errormsg" to an error message.
- */
- int
-! parse_command_modifiers(exarg_T *eap, char_u **errormsg)
- {
- char_u *p;
-
---- 2601,2616 ----
- * - store flags in "cmdmod".
- * - Set ex_pressedreturn for an empty command line.
- * - set msg_silent for ":silent"
-+ * - set 'eventignore' to "all" for ":noautocmd"
- * - set p_verbose for ":verbose"
- * - Increment "sandbox" for ":sandbox"
-+ * When "skip_only" is TRUE the global variables are not changed, except for
-+ * "cmdmod".
- * Return FAIL when the command is not to be executed.
- * May set "errormsg" to an error message.
- */
- int
-! parse_command_modifiers(exarg_T *eap, char_u **errormsg, int skip_only)
- {
- char_u *p;
-
-***************
-*** 2623,2633 ****
- eap->verbose_save = -1;
- eap->save_msg_silent = -1;
-
- for (;;)
- {
-- /*
-- * 1. Skip comment lines and leading white space and colons.
-- */
- while (*eap->cmd == ' ' || *eap->cmd == '\t' || *eap->cmd == ':')
- ++eap->cmd;
-
---- 2618,2626 ----
- eap->verbose_save = -1;
- eap->save_msg_silent = -1;
-
-+ // Repeat until no more command modifiers are found.
- for (;;)
- {
- while (*eap->cmd == ' ' || *eap->cmd == '\t' || *eap->cmd == ':')
- ++eap->cmd;
-
-***************
-*** 2638,2644 ****
- && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
- {
- eap->cmd = (char_u *)"+";
-! ex_pressedreturn = TRUE;
- }
-
- /* ignore comment and empty lines */
---- 2631,2638 ----
- && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
- {
- eap->cmd = (char_u *)"+";
-! if (!skip_only)
-! ex_pressedreturn = TRUE;
- }
-
- /* ignore comment and empty lines */
-***************
-*** 2646,2658 ****
- return FAIL;
- if (*eap->cmd == NUL)
- {
-! ex_pressedreturn = TRUE;
- return FAIL;
- }
-
-- /*
-- * 2. Handle command modifiers.
-- */
- p = skip_range(eap->cmd, NULL);
- switch (*p)
- {
---- 2640,2650 ----
- return FAIL;
- if (*eap->cmd == NUL)
- {
-! if (!skip_only)
-! ex_pressedreturn = TRUE;
- return FAIL;
- }
-
- p = skip_range(eap->cmd, NULL);
- switch (*p)
- {
-***************
-*** 2720,2732 ****
- if (*p == NUL || ends_excmd(*p))
- break;
- }
-! p = skip_vimgrep_pat(p, &reg_pat, NULL);
- if (p == NULL || *p == NUL)
- break;
-! cmdmod.filter_regmatch.regprog =
- vim_regcomp(reg_pat, RE_MAGIC);
-! if (cmdmod.filter_regmatch.regprog == NULL)
-! break;
- eap->cmd = p;
- continue;
- }
---- 2712,2731 ----
- if (*p == NUL || ends_excmd(*p))
- break;
- }
-! if (skip_only)
-! p = skip_vimgrep_pat(p, NULL, NULL);
-! else
-! // NOTE: This puts a NUL after the pattern.
-! p = skip_vimgrep_pat(p, &reg_pat, NULL);
- if (p == NULL || *p == NUL)
- break;
-! if (!skip_only)
-! {
-! cmdmod.filter_regmatch.regprog =
- vim_regcomp(reg_pat, RE_MAGIC);
-! if (cmdmod.filter_regmatch.regprog == NULL)
-! break;
-! }
- eap->cmd = p;
- continue;
- }
-***************
-*** 2752,2758 ****
-
- case 'n': if (checkforcmd(&eap->cmd, "noautocmd", 3))
- {
-! if (cmdmod.save_ei == NULL)
- {
- /* Set 'eventignore' to "all". Restore the
- * existing option value later. */
---- 2751,2757 ----
-
- case 'n': if (checkforcmd(&eap->cmd, "noautocmd", 3))
- {
-! if (cmdmod.save_ei == NULL && !skip_only)
- {
- /* Set 'eventignore' to "all". Restore the
- * existing option value later. */
-***************
-*** 2775,2797 ****
- case 's': if (checkforcmd(&eap->cmd, "sandbox", 3))
- {
- #ifdef HAVE_SANDBOX
-! if (!eap->did_sandbox)
-! ++sandbox;
-! eap->did_sandbox = TRUE;
- #endif
- continue;
- }
- if (!checkforcmd(&eap->cmd, "silent", 3))
- break;
-! if (eap->save_msg_silent == -1)
-! eap->save_msg_silent = msg_silent;
-! ++msg_silent;
- if (*eap->cmd == '!' && !VIM_ISWHITE(eap->cmd[-1]))
- {
- /* ":silent!", but not "silent !cmd" */
- eap->cmd = skipwhite(eap->cmd + 1);
-! ++emsg_silent;
-! ++eap->did_esilent;
- }
- continue;
-
---- 2774,2805 ----
- case 's': if (checkforcmd(&eap->cmd, "sandbox", 3))
- {
- #ifdef HAVE_SANDBOX
-! if (!skip_only)
-! {
-! if (!eap->did_sandbox)
-! ++sandbox;
-! eap->did_sandbox = TRUE;
-! }
- #endif
- continue;
- }
- if (!checkforcmd(&eap->cmd, "silent", 3))
- break;
-! if (!skip_only)
-! {
-! if (eap->save_msg_silent == -1)
-! eap->save_msg_silent = msg_silent;
-! ++msg_silent;
-! }
- if (*eap->cmd == '!' && !VIM_ISWHITE(eap->cmd[-1]))
- {
- /* ":silent!", but not "silent !cmd" */
- eap->cmd = skipwhite(eap->cmd + 1);
-! if (!skip_only)
-! {
-! ++emsg_silent;
-! ++eap->did_esilent;
-! }
- }
- continue;
-
-***************
-*** 2820,2828 ****
-
- case 'u': if (!checkforcmd(&eap->cmd, "unsilent", 3))
- break;
-! if (eap->save_msg_silent == -1)
-! eap->save_msg_silent = msg_silent;
-! msg_silent = 0;
- continue;
-
- case 'v': if (checkforcmd(&eap->cmd, "vertical", 4))
---- 2828,2839 ----
-
- case 'u': if (!checkforcmd(&eap->cmd, "unsilent", 3))
- break;
-! if (!skip_only)
-! {
-! if (eap->save_msg_silent == -1)
-! eap->save_msg_silent = msg_silent;
-! msg_silent = 0;
-! }
- continue;
-
- case 'v': if (checkforcmd(&eap->cmd, "vertical", 4))
-***************
-*** 2832,2843 ****
- }
- if (!checkforcmd(&p, "verbose", 4))
- break;
-! if (eap->verbose_save < 0)
-! eap->verbose_save = p_verbose;
-! if (vim_isdigit(*eap->cmd))
-! p_verbose = atoi((char *)eap->cmd);
-! else
-! p_verbose = 1;
- eap->cmd = p;
- continue;
- }
---- 2843,2857 ----
- }
- if (!checkforcmd(&p, "verbose", 4))
- break;
-! if (!skip_only)
-! {
-! if (eap->verbose_save < 0)
-! eap->verbose_save = p_verbose;
-! if (vim_isdigit(*eap->cmd))
-! p_verbose = atoi((char *)eap->cmd);
-! else
-! p_verbose = 1;
-! }
- eap->cmd = p;
- continue;
- }
-***************
-*** 2848,2853 ****
---- 2862,2885 ----
- }
-
- /*
-+ * Free contents of "cmdmod".
-+ */
-+ static void
-+ free_cmdmod(void)
-+ {
-+ if (cmdmod.save_ei != NULL)
-+ {
-+ /* Restore 'eventignore' to the value before ":noautocmd". */
-+ set_string_option_direct((char_u *)"ei", -1, cmdmod.save_ei,
-+ OPT_FREE, SID_NONE);
-+ free_string_option(cmdmod.save_ei);
-+ }
-+
-+ if (cmdmod.filter_regmatch.regprog != NULL)
-+ vim_regfree(cmdmod.filter_regmatch.regprog);
-+ }
-+
-+ /*
- * Parse the address range, if any, in "eap".
- * Return FAIL and set "errormsg" or return OK.
- */
-*** ../vim-8.1.0281/src/proto/ex_docmd.pro 2018-08-14 13:38:12.744559267 +0200
---- src/proto/ex_docmd.pro 2018-08-14 15:27:07.371906192 +0200
-***************
-*** 4,10 ****
- int do_cmdline(char_u *cmdline, char_u *(*fgetline)(int, void *, int), void *cookie, int flags);
- int getline_equal(char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int));
- void *getline_cookie(char_u *(*fgetline)(int, void *, int), void *cookie);
-! int parse_command_modifiers(exarg_T *eap, char_u **errormsg);
- int parse_cmd_address(exarg_T *eap, char_u **errormsg);
- int checkforcmd(char_u **pp, char *cmd, int len);
- int modifier_len(char_u *cmd);
---- 4,10 ----
- int do_cmdline(char_u *cmdline, char_u *(*fgetline)(int, void *, int), void *cookie, int flags);
- int getline_equal(char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int));
- void *getline_cookie(char_u *(*fgetline)(int, void *, int), void *cookie);
-! int parse_command_modifiers(exarg_T *eap, char_u **errormsg, int skip_only);
- int parse_cmd_address(exarg_T *eap, char_u **errormsg);
- int checkforcmd(char_u **pp, char *cmd, int len);
- int modifier_len(char_u *cmd);
-*** ../vim-8.1.0281/src/ex_getln.c 2018-08-13 22:54:31.456665135 +0200
---- src/ex_getln.c 2018-08-14 15:27:03.303934870 +0200
-***************
-*** 283,293 ****
- return TRUE;
- if (firstc == ':')
- {
-! char_u *cmd = skip_range(ccline.cmdbuff, NULL);
-! char_u *p;
-! int delim;
-! char_u *end;
-
- if (*cmd == 's' || *cmd == 'g' || *cmd == 'v')
- {
- // Skip over "substitute" to find the pattern separator.
---- 283,306 ----
- return TRUE;
- if (firstc == ':')
- {
-! char_u *cmd;
-! cmdmod_T save_cmdmod = cmdmod;
-! char_u *p;
-! int delim;
-! char_u *end;
-! char_u *dummy;
-! exarg_T ea;
-
-+ vim_memset(&ea, 0, sizeof(ea));
-+ ea.line1 = 1;
-+ ea.line2 = 1;
-+ ea.cmd = ccline.cmdbuff;
-+ ea.addr_type = ADDR_LINES;
-+
-+ parse_command_modifiers(&ea, &dummy, TRUE);
-+ cmdmod = save_cmdmod;
-+
-+ cmd = skip_range(ea.cmd, NULL);
- if (*cmd == 's' || *cmd == 'g' || *cmd == 'v')
- {
- // Skip over "substitute" to find the pattern separator.
-***************
-*** 310,317 ****
- end = skip_regexp(p, delim, p_magic, NULL);
- if (end > p || *end == delim)
- {
-- char_u *dummy;
-- exarg_T ea;
- pos_T save_cursor = curwin->w_cursor;
-
- // found a non-empty pattern
---- 323,328 ----
-***************
-*** 319,329 ****
- *patlen = (int)(end - p);
-
- // parse the address range
-- vim_memset(&ea, 0, sizeof(ea));
-- ea.line1 = 1;
-- ea.line2 = 1;
-- ea.cmd = ccline.cmdbuff;
-- ea.addr_type = ADDR_LINES;
- curwin->w_cursor = is_state->search_start;
- parse_cmd_address(&ea, &dummy);
- if (ea.addr_count > 0)
---- 330,335 ----
-*** ../vim-8.1.0281/src/testdir/test_search.vim 2018-08-13 22:54:31.456665135 +0200
---- src/testdir/test_search.vim 2018-08-14 16:01:44.561537663 +0200
-***************
-*** 884,889 ****
---- 884,895 ----
- call VerifyScreenDump(buf, 'Test_incsearch_substitute_05', {})
- call term_sendkeys(buf, "\<Esc>")
-
-+ " Command modifiers are skipped
-+ call term_sendkeys(buf, ':above below browse botr confirm keepmar keepalt keeppat keepjum filter xxx hide lockm leftabove noau noswap rightbel sandbox silent silent! $tab top unsil vert verbose 4,5s/fo.')
-+ sleep 100m
-+ call VerifyScreenDump(buf, 'Test_incsearch_substitute_06', {})
-+ call term_sendkeys(buf, "\<Esc>")
-+
- call StopVimInTerminal(buf)
- call delete('Xis_subst_script')
- endfunc
-*** ../vim-8.1.0281/src/version.c 2018-08-14 13:38:12.748559237 +0200
---- src/version.c 2018-08-14 16:02:48.537093003 +0200
-***************
-*** 796,797 ****
---- 796,799 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 282,
- /**/
-
---
-It is illegal to take more than three sips of beer at a time while standing.
- [real standing law in Texas, United States of America]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///