updated for version 7.0075
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index ba35a04..b99b0d7 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 @@
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 bbb0f1a..446717d 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1431,6 +1431,10 @@
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 94dc39c..3b45b2d 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -783,6 +783,17 @@
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 @@
* 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 @@
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 46a857b..e25d6ca 100644
--- a/src/testdir/test55.in
+++ b/src/testdir/test55.in
@@ -266,6 +266,15 @@
:$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
:"