diff src/ops.c @ 283:a2ff714de3db

updated for version 7.0075
author vimboss
date Sun, 22 May 2005 22:09:40 +0000
parents 8fa8d7964cf1
children 2d8c2622e1fa
line wrap: on
line diff
--- 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;
     }