• R/O
  • SSH

vim: Commit

Mirror of the Vim source from https://github.com/vim/vim


Commit MetaInfo

Revisión5a1d8468d1fad7189c8c781149f034dbb4208b39 (tree)
Tiempo2007-03-27 23:57:09
Autorvimboss
Commitervimboss

Log Message

updated for version 7.0-224

Cambiar Resumen

Diferencia incremental

diff -r 537cb92935b6 -r 5a1d8468d1fa src/eval.c
--- a/src/eval.c Tue Mar 27 10:42:05 2007 +0000
+++ b/src/eval.c Tue Mar 27 14:57:09 2007 +0000
@@ -8924,7 +8924,7 @@
89248924 if (*s == '%' || *s == '#' || *s == '<')
89258925 {
89268926 ++emsg_off;
8927- rettv->vval.v_string = eval_vars(s, &len, NULL, &errormsg, s);
8927+ rettv->vval.v_string = eval_vars(s, s, &len, NULL, &errormsg, NULL);
89288928 --emsg_off;
89298929 }
89308930 else
diff -r 537cb92935b6 -r 5a1d8468d1fa src/ex_docmd.c
--- a/src/ex_docmd.c Tue Mar 27 10:42:05 2007 +0000
+++ b/src/ex_docmd.c Tue Mar 27 14:57:09 2007 +0000
@@ -4176,6 +4176,7 @@
41764176 int srclen;
41774177 char_u *p;
41784178 int n;
4179+ int escaped;
41794180
41804181 #ifdef FEAT_QUICKFIX
41814182 /* Skip a regexp pattern for ":vimgrep[add] pat file..." */
@@ -4216,7 +4217,8 @@
42164217 /*
42174218 * Try to find a match at this position.
42184219 */
4219- repl = eval_vars(p, &srclen, &(eap->do_ecmd_lnum), errormsgp, eap->arg);
4220+ repl = eval_vars(p, eap->arg, &srclen, &(eap->do_ecmd_lnum),
4221+ errormsgp, &escaped);
42204222 if (*errormsgp != NULL) /* error detected */
42214223 return FAIL;
42224224 if (repl == NULL) /* no match found */
@@ -4235,11 +4237,15 @@
42354237 vim_free(l);
42364238 }
42374239
4238- /* Need to escape white space et al. with a backslash. Don't do this
4239- * for shell commands (may have to use quotes instead). Don't do this
4240- * for non-unix systems when there is a single argument (spaces don't
4241- * separate arguments then). */
4240+ /* Need to escape white space et al. with a backslash.
4241+ * Don't do this for:
4242+ * - replacement that already has been escaped: "##"
4243+ * - shell commands (may have to use quotes instead).
4244+ * - non-unix systems when there is a single argument (spaces don't
4245+ * separate arguments then).
4246+ */
42424247 if (!eap->usefilter
4248+ && !escaped
42434249 && eap->cmdidx != CMD_bang
42444250 && eap->cmdidx != CMD_make
42454251 && eap->cmdidx != CMD_lmake
@@ -9280,12 +9286,14 @@
92809286 * number of characters to skip.
92819287 */
92829288 char_u *
9283-eval_vars(src, usedlen, lnump, errormsg, srcstart)
9289+eval_vars(src, srcstart, usedlen, lnump, errormsg, escaped)
92849290 char_u *src; /* pointer into commandline */
9291+ char_u *srcstart; /* beginning of valid memory for src */
92859292 int *usedlen; /* characters after src that are used */
92869293 linenr_T *lnump; /* line number for :e command, or NULL */
92879294 char_u **errormsg; /* pointer to error message */
9288- char_u *srcstart; /* beginning of valid memory for src */
9295+ int *escaped; /* return value has escaped white space (can
9296+ * be NULL) */
92899297 {
92909298 int i;
92919299 char_u *s;
@@ -9332,6 +9340,8 @@
93329340 #endif
93339341
93349342 *errormsg = NULL;
9343+ if (escaped != NULL)
9344+ *escaped = FALSE;
93359345
93369346 /*
93379347 * Check if there is something to do.
@@ -9407,6 +9417,8 @@
94079417 result = arg_all();
94089418 resultbuf = result;
94099419 *usedlen = 2;
9420+ if (escaped != NULL)
9421+ *escaped = TRUE;
94109422 #ifdef FEAT_MODIFY_FNAME
94119423 skip_mod = TRUE;
94129424 #endif
@@ -9627,7 +9639,7 @@
96279639 else
96289640 {
96299641 /* replace "<sfile>" with the sourced file name, and do ":" stuff */
9630- repl = eval_vars(p, &srclen, NULL, &errormsg, result);
9642+ repl = eval_vars(p, result, &srclen, NULL, &errormsg, NULL);
96319643 if (errormsg != NULL)
96329644 {
96339645 if (*errormsg)
diff -r 537cb92935b6 -r 5a1d8468d1fa src/proto/ex_docmd.pro
--- a/src/proto/ex_docmd.pro Tue Mar 27 10:42:05 2007 +0000
+++ b/src/proto/ex_docmd.pro Tue Mar 27 14:57:09 2007 +0000
@@ -44,7 +44,7 @@
4444 extern FILE *open_exfile __ARGS((char_u *fname, int forceit, char *mode));
4545 extern void update_topline_cursor __ARGS((void));
4646 extern void exec_normal_cmd __ARGS((char_u *cmd, int remap, int silent));
47-extern char_u *eval_vars __ARGS((char_u *src, int *usedlen, linenr_T *lnump, char_u **errormsg, char_u *srcstart));
47+extern char_u *eval_vars __ARGS((char_u *src, char_u *srcstart, int *usedlen, linenr_T *lnump, char_u **errormsg, int *escaped));
4848 extern char_u *expand_sfile __ARGS((char_u *arg));
4949 extern int put_eol __ARGS((FILE *fd));
5050 extern int put_line __ARGS((FILE *fd, char *s));
diff -r 537cb92935b6 -r 5a1d8468d1fa src/version.c
--- a/src/version.c Tue Mar 27 10:42:05 2007 +0000
+++ b/src/version.c Tue Mar 27 14:57:09 2007 +0000
@@ -667,6 +667,8 @@
667667 static int included_patches[] =
668668 { /* Add new patch number below this line */
669669 /**/
670+ 224,
671+/**/
670672 223,
671673 /**/
672674 222,
Show on old repository browser