patch 8.0.1242: function argument with only dash is seen as number zero

Problem:    Function argument with only dash is seen as number zero. (Wang
            Shidong)
Solution:   See a dash as a string. (Christian Brabandt)
diff --git a/src/eval.c b/src/eval.c
index e8a1b0a..b3e2be5 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1056,8 +1056,13 @@
 	if (str_arg_only)
 	    len = 0;
 	else
-	    /* Recognize a number argument, the others must be strings. */
+	{
+	    /* Recognize a number argument, the others must be strings. A dash
+	     * is a string too. */
 	    vim_str2nr(argv[i], NULL, &len, STR2NR_ALL, &n, NULL, 0);
+	    if (len == 1 && *argv[i] == '-')
+		len = 0;
+	}
 	if (len != 0 && len == (int)STRLEN(argv[i]))
 	{
 	    argvars[i].v_type = VAR_NUMBER;