Hi,
this patch addresses the following bug:
When 'smartcase' is set and using CTRL-L to add to the search
pattern it may result in no matches. Convert chars to lower case?
(Erik Wognsen, 2009 Apr 16)
The description is taken from
http://code.google.com/p/vim/source/browse/runtime/doc/todo.txt?r=63157185aea525b39b1238df3ffbf4ec0fea10b1#482
and the original mail thread describing the problem is
http://groups.google.com/group/vim_use/browse_thread/thread/7321c95ebde237e3/2cd4e07431dcaf3c
The patch does what the description suggests, i.e. the added character
is converted to lowercase if 'ignorecase' and 'smartcase' are set and
CTRL-L is pressed during an incremental search.
Martin
diff -r 63157185aea5 runtime/doc/cmdline.txt
--- a/runtime/doc/cmdline.txt Sat Jun 05 12:49:46 2010 +0200
+++ b/runtime/doc/cmdline.txt Sat Jun 05 20:58:28 2010 +0200
@@ -416,7 +416,9 @@
than the pattern, no completion is done.
When 'incsearch' is set, entering a search pattern for "/" or
"?" and the current match is displayed then CTRL-L will add
- one character from the end of the current match.
+ one character from the end of the current match. If
+ 'ignorecase' and 'smartcase' are set, the added character is
+ converted to lowercase.
The 'wildchar' option defaults to <Tab> (CTRL-E when in Vi compatible mode; in
a previous version <Esc> was used). In the pattern standard wildcards '*' and
diff -r 63157185aea5 runtime/doc/options.txt
--- a/runtime/doc/options.txt Sat Jun 05 12:49:46 2010 +0200
+++ b/runtime/doc/options.txt Sat Jun 05 20:58:28 2010 +0200
@@ -3939,7 +3939,8 @@
The highlighting can be set with the 'i' flag in 'highlight'.
See also: 'hlsearch'.
CTRL-L can be used to add one character from after the current match
- to the command line.
+ to the command line. If 'ignorecase' and 'smartcase' are set, the
+ added character is converted to lowercase.
CTRL-R CTRL-W can be used to add the word at the end of the current
match, excluding the characters that were already typed.
NOTE: This option is reset when 'compatible' is set.
diff -r 63157185aea5 src/ex_getln.c
--- a/src/ex_getln.c Sat Jun 05 12:49:46 2010 +0200
+++ b/src/ex_getln.c Sat Jun 05 20:58:28 2010 +0200
@@ -1411,6 +1411,10 @@
&& !equalpos(curwin->w_cursor, old_cursor))
{
c = gchar_cursor();
+ /* If 'ignorecase' and 'smartcase' are set, convert the
+ * character to lowercase */
+ if (p_ic && p_scs)
+ c = MB_TOLOWER(c);
if (c != NUL)
{
if (c == firstc || vim_strchr((char_u *)(
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php