diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-08-18 16:19:42 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-08-18 16:19:42 +0200 |
commit | 81f56536b1bc324eb173924a8cf4d7dbbf4f3fdb (patch) | |
tree | 6c8052b1a028eb03a85ffe4f5976863c43a91c67 /src/ex_getln.c | |
parent | b476cb7d8d1a8c02409f110dea8b166aa9334e18 (diff) |
patch 8.1.0291: 'incsearch' highlighting not used for :sortv8.1.0291
Problem: 'incsearch' highlighting not used for :sort.
Solution: Handle pattern in :sort command.
Diffstat (limited to 'src/ex_getln.c')
-rw-r--r-- | src/ex_getln.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c index d38fa4b023..7928af7bff 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -316,6 +316,7 @@ do_incsearch_highlighting(int firstc, incsearch_state_T *is_state, && (STRNCMP(cmd, "substitute", p - cmd) == 0 || STRNCMP(cmd, "smagic", p - cmd) == 0 || STRNCMP(cmd, "snomagic", MAX(p - cmd, 3)) == 0 + || STRNCMP(cmd, "sort", p - cmd) == 0 || STRNCMP(cmd, "global", p - cmd) == 0 || STRNCMP(cmd, "vglobal", p - cmd) == 0)) { @@ -331,6 +332,16 @@ do_incsearch_highlighting(int firstc, incsearch_state_T *is_state, 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); @@ -359,7 +370,7 @@ do_incsearch_highlighting(int firstc, incsearch_state_T *is_state, search_last_line = ea.line2; } } - else if (*cmd == 's') + else if (cmd[0] == 's' && cmd[1] != 'o') { // :s defaults to the current line search_first_line = curwin->w_cursor.lnum; |