diff options
Diffstat (limited to 'data/vim/patches/8.1.0296')
-rw-r--r-- | data/vim/patches/8.1.0296 | 306 |
1 files changed, 0 insertions, 306 deletions
diff --git a/data/vim/patches/8.1.0296 b/data/vim/patches/8.1.0296 deleted file mode 100644 index 26acf8115..000000000 --- a/data/vim/patches/8.1.0296 +++ /dev/null @@ -1,306 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 8.1.0296 -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.0296 -Problem: Command parsing for 'incsearch' is a bit ugly. -Solution: Return when there is no pattern. Put common checks together. -Files: src/ex_getln.c - - -*** ../vim-8.1.0295/src/ex_getln.c 2018-08-18 21:04:57.743864534 +0200 ---- src/ex_getln.c 2018-08-18 21:20:59.041314761 +0200 -*************** -*** 276,415 **** - do_incsearch_highlighting(int firstc, incsearch_state_T *is_state, - int *skiplen, int *patlen) - { - *skiplen = 0; - *patlen = ccline.cmdlen; - -! if (p_is && !cmd_silent) - { -! // by default search all lines -! search_first_line = 0; -! search_last_line = MAXLNUM; -! -! if (firstc == '/' || firstc == '?') -! 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' || *cmd == 'l') -! { -! // Skip over "substitute" to find the pattern separator. -! for (p = cmd; ASCII_ISALPHA(*p); ++p) -! ; -! if (*skipwhite(p) != NUL) -! { -! if (STRNCMP(cmd, "substitute", p - cmd) == 0 -! || STRNCMP(cmd, "smagic", p - cmd) == 0 -! || STRNCMP(cmd, "snomagic", MAX(p - cmd, 3)) == 0 -! || STRNCMP(cmd, "sort", MAX(p - cmd, 3)) == 0 -! || STRNCMP(cmd, "global", p - cmd) == 0 -! || STRNCMP(cmd, "vglobal", p - cmd) == 0) -! { -! if (*cmd == 's' && cmd[1] == 'm') -! p_magic = TRUE; -! else if (*cmd == 's' && cmd[1] == 'n') -! p_magic = FALSE; -! -! // Check for "global!/". -! if (*cmd == 'g' && *p == '!') -! { -! p++; -! if (*skipwhite(p) == NUL) -! return FALSE; -! } -! -! // For ":sort" skip over flags. -! if (cmd[0] == 's' && cmd[1] == 'o') -! { -! while (ASCII_ISALPHA(*(p = skipwhite(p)))) -! ++p; -! if (*p == NUL) -! return FALSE; -! } -! -! p = skipwhite(p); -! delim = *p++; -! end = skip_regexp(p, delim, p_magic, NULL); -! } -! else if (STRNCMP(cmd, "vimgrep", MAX(p - cmd, 3)) == 0 -! || STRNCMP(cmd, "vimgrepadd", MAX(p - cmd, 8)) == 0 -! || STRNCMP(cmd, "lvimgrep", MAX(p - cmd, 2)) == 0 -! || STRNCMP(cmd, "lvimgrepadd", MAX(p - cmd, 9)) == 0) -! { -! // Check for "!/". -! if (*p == '!') -! { -! p++; -! if (*skipwhite(p) == NUL) -! return FALSE; -! } -! p = skipwhite(p); -! delim = (vim_isIDc(*p)) ? ' ' : *p++; -! end = skip_regexp(p, delim, p_magic, NULL); -! } -! else -! { -! end = p; -! delim = -1; -! } -! -! if (end > p || *end == delim) -! { -! pos_T save_cursor = curwin->w_cursor; -! -! // found a non-empty pattern or // -! *skiplen = (int)(p - ccline.cmdbuff); -! *patlen = (int)(end - p); -! -! // parse the address range -! curwin->w_cursor = is_state->search_start; -! parse_cmd_address(&ea, &dummy); -! if (ea.addr_count > 0) -! { -! // Allow for reverse match. -! if (ea.line2 < ea.line1) -! { -! search_first_line = ea.line2; -! search_last_line = ea.line1; -! } -! else -! { -! search_first_line = ea.line1; -! search_last_line = ea.line2; -! } -! } -! else if (cmd[0] == 's' && cmd[1] != 'o') -! { -! // :s defaults to the current line -! search_first_line = curwin->w_cursor.lnum; -! search_last_line = curwin->w_cursor.lnum; -! } -! -! curwin->w_cursor = save_cursor; -! return TRUE; -! } -! } -! } - } - } - -! return FALSE; - } - - static void ---- 276,400 ---- - do_incsearch_highlighting(int firstc, incsearch_state_T *is_state, - int *skiplen, int *patlen) - { -+ char_u *cmd; -+ cmdmod_T save_cmdmod = cmdmod; -+ char_u *p; -+ int delim_optional = FALSE; -+ int delim; -+ char_u *end; -+ char_u *dummy; -+ exarg_T ea; -+ pos_T save_cursor; -+ - *skiplen = 0; - *patlen = ccline.cmdlen; - -! if (!p_is || cmd_silent) -! return FALSE; -! -! // by default search all lines -! search_first_line = 0; -! search_last_line = MAXLNUM; -! -! if (firstc == '/' || firstc == '?') -! return TRUE; -! if (firstc != ':') -! return FALSE; -! -! 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 (vim_strchr((char_u *)"sgvl", *cmd) == NULL) -! return FALSE; -! -! // Skip over "substitute" to find the pattern separator. -! for (p = cmd; ASCII_ISALPHA(*p); ++p) -! ; -! if (*skipwhite(p) == NUL) -! return FALSE; -! -! if (STRNCMP(cmd, "substitute", p - cmd) == 0 -! || STRNCMP(cmd, "smagic", p - cmd) == 0 -! || STRNCMP(cmd, "snomagic", MAX(p - cmd, 3)) == 0 -! || STRNCMP(cmd, "vglobal", p - cmd) == 0) -! { -! if (*cmd == 's' && cmd[1] == 'm') -! p_magic = TRUE; -! else if (*cmd == 's' && cmd[1] == 'n') -! p_magic = FALSE; -! } -! else if (STRNCMP(cmd, "sort", MAX(p - cmd, 3)) == 0) - { -! // skip over flags -! while (ASCII_ISALPHA(*(p = skipwhite(p)))) -! ++p; -! if (*p == NUL) -! return FALSE; -! } -! else if (STRNCMP(cmd, "vimgrep", MAX(p - cmd, 3)) == 0 -! || STRNCMP(cmd, "vimgrepadd", MAX(p - cmd, 8)) == 0 -! || STRNCMP(cmd, "lvimgrep", MAX(p - cmd, 2)) == 0 -! || STRNCMP(cmd, "lvimgrepadd", MAX(p - cmd, 9)) == 0 -! || STRNCMP(cmd, "global", p - cmd) == 0) -! { -! // skip over "!" -! if (*p == '!') - { -! p++; -! if (*skipwhite(p) == NUL) -! return FALSE; - } -+ if (*cmd != 'g') -+ delim_optional = TRUE; -+ } -+ else -+ return FALSE; -+ -+ p = skipwhite(p); -+ delim = (delim_optional && vim_isIDc(*p)) ? ' ' : *p++; -+ end = skip_regexp(p, delim, p_magic, NULL); -+ -+ if (end == p && *end != delim) -+ return FALSE; -+ // found a non-empty pattern or // -+ -+ *skiplen = (int)(p - ccline.cmdbuff); -+ *patlen = (int)(end - p); -+ -+ // parse the address range -+ save_cursor = curwin->w_cursor; -+ curwin->w_cursor = is_state->search_start; -+ parse_cmd_address(&ea, &dummy); -+ if (ea.addr_count > 0) -+ { -+ // Allow for reverse match. -+ if (ea.line2 < ea.line1) -+ { -+ search_first_line = ea.line2; -+ search_last_line = ea.line1; -+ } -+ else -+ { -+ search_first_line = ea.line1; -+ search_last_line = ea.line2; -+ } -+ } -+ else if (cmd[0] == 's' && cmd[1] != 'o') -+ { -+ // :s defaults to the current line -+ search_first_line = curwin->w_cursor.lnum; -+ search_last_line = curwin->w_cursor.lnum; - } - -! curwin->w_cursor = save_cursor; -! return TRUE; - } - - static void -*** ../vim-8.1.0295/src/version.c 2018-08-18 21:04:57.743864534 +0200 ---- src/version.c 2018-08-18 21:22:23.748034012 +0200 -*************** -*** 796,797 **** ---- 796,799 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 296, - /**/ - --- -The Characters and incidents portrayed and the names used are fictitious and -any similarity to the names, characters, or history of any person is entirely -accidental and unintentional. - Signed RICHARD M. NIXON - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// |