summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-05-22 22:09:40 +0000
committerBram Moolenaar <Bram@vim.org>2005-05-22 22:09:40 +0000
commitde934d77b1623f08fc1a30d91f7b58f6630dd1d1 (patch)
tree8651c674f15fdfb6bfc90de24746b2c0b79c3348
parent2389c3c6402fedaa5b198a7bed04daabc2939e7b (diff)
downloadvim-git-de934d77b1623f08fc1a30d91f7b58f6630dd1d1.tar.gz
updated for version 7.0075
-rw-r--r--runtime/doc/pattern.txt6
-rw-r--r--src/globals.h4
-rw-r--r--src/ops.c20
-rw-r--r--src/testdir/test55.in9
4 files changed, 34 insertions, 5 deletions
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index ba35a0470..b99b0d7ab 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt* For Vim version 7.0aa. Last change: 2005 Mar 29
+*pattern.txt* For Vim version 7.0aa. Last change: 2005 May 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -835,8 +835,8 @@ $ At end of pattern or in front of "\|" or "\)" ("|" or ")" after "\v"):
are halfway a Tab or other character that occupies more than one
screen character. {not in Vi}
WARNING: When inserting or deleting text Vim does not automatically
- update the matches. This means Syntax highlighting quickly becomes
- wrong.
+ update highlighted matches. This means Syntax highlighting quickly
+ becomes wrong.
Example, to highlight the all characters after virtual column 72: >
/\%>72v.*
< When 'hlsearch' is set and you move the cursor around and make changes
diff --git a/src/globals.h b/src/globals.h
index bbb0f1a69..446717d79 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1431,6 +1431,10 @@ EXTERN char_u e_intern2[] INIT(=N_("E685: Internal error: %s"));
EXTERN char_u e_maxmempat[] INIT(=N_("E363: pattern uses more memory than 'maxmempattern'"));
EXTERN char_u e_emptybuf[] INIT(=N_("E749: empty buffer"));
+#ifdef FEAT_EX_EXTRA
+EXTERN char_u e_invalpat[] INIT(=N_("E682: Invalid search pattern or delimiter"));
+#endif
+
#ifdef MACOS_X_UNIX
EXTERN short disallow_gui INIT(= FALSE);
#endif
diff --git a/src/ops.c b/src/ops.c
index 94dc39c82..3b45b2df4 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -783,6 +783,17 @@ get_expr_line()
vim_free(expr_copy);
return rv;
}
+
+/*
+ * Get the '=' register expression itself, without evaluating it.
+ */
+ char_u *
+get_expr_line_src()
+{
+ if (expr_line == NULL)
+ return NULL;
+ return vim_strsave(expr_line);
+}
#endif /* FEAT_EVAL */
/*
@@ -5588,9 +5599,10 @@ get_reg_type(regname, reglen)
* Returns NULL for error.
*/
char_u *
-get_reg_contents(regname, allowexpr)
+get_reg_contents(regname, allowexpr, expr_src)
int regname;
- int allowexpr; /* allow "=" register. */
+ int allowexpr; /* allow "=" register */
+ int expr_src; /* get expression for "=" register */
{
long i;
char_u *retval;
@@ -5601,7 +5613,11 @@ get_reg_contents(regname, allowexpr)
if (regname == '=')
{
if (allowexpr)
+ {
+ if (expr_src)
+ return get_expr_line_src();
return get_expr_line();
+ }
return NULL;
}
diff --git a/src/testdir/test55.in b/src/testdir/test55.in
index 46a857b12..e25d6ca71 100644
--- a/src/testdir/test55.in
+++ b/src/testdir/test55.in
@@ -266,6 +266,15 @@ STARTTEST
:$put =string(reverse(sort(l)))
:$put =string(sort(reverse(sort(l))))
:"
+:" splitting a string to a List
+:$put =string(split(' aa bb '))
+:$put =string(split(' aa bb ', '\W\+', 0))
+:$put =string(split(' aa bb ', '\W\+', 1))
+:$put =string(split(' aa bb ', '\W', 1))
+:$put =string(split(':aa::bb:', ':', 0))
+:$put =string(split(':aa::bb:', ':', 1))
+:$put =string(split('aa,,bb, cc,', ',\s*', 1))
+:"
:endfun
:call Test(1, 2, [3, 4], {5: 6}) " This may take a while
:"