diff src/eval.c @ 9:4102fb4ea781 v7.0002

updated for version 7.0002
author vimboss
date Sun, 20 Jun 2004 12:51:53 +0000
parents 3fc0f57ecb91
children 4e2284e71352
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -599,6 +599,20 @@ eval_to_string_skip(arg, nextcmd, skip)
 }
 
 /*
+ * Skip over an expression at "*pp".
+ * Return FAIL for an error, OK otherwise.
+ */
+    int
+skip_expr(pp)
+    char_u	**pp;
+{
+    var		retvar;
+
+    *pp = skipwhite(*pp);
+    return eval1(pp, &retvar, FALSE);
+}
+
+/*
  * Top level evaluation function, returning a string.
  * Return pointer to allocated memory, or NULL for failure.
  */
@@ -3375,6 +3389,20 @@ find_buffer(avar)
 	    buf = buflist_findname(name);
 	    vim_free(name);
 	}
+	if (buf == NULL)
+	{
+	    /* No full path name match, try a match with a URL or a "nofile"
+	     * buffer, these don't use the full path. */
+	    for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+		if (buf->b_fname != NULL
+			&& (path_with_url(buf->b_fname)
+#ifdef FEAT_QUICKFIX
+			    || bt_nofile(buf)
+#endif
+			   )
+			&& STRCMP(buf->b_fname, avar->var_val.var_string) == 0)
+		    break;
+	}
     }
     return buf;
 }