# HG changeset patch # User vimboss # Date 1116799780 0 # Node ID a2ff714de3db0eeb409b733d7eb35bb8f770a6e4 # Parent 33d9c918b8abf72fdd29319d5384bbf527bbdd6e updated for version 7.0075 diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt --- 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 @@ An ordinary atom can be: 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 --- a/src/globals.h +++ b/src/globals.h @@ -1431,6 +1431,10 @@ EXTERN char_u e_intern2[] INIT(=N_("E685 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 --- 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 --- 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 :"