patch 8.2.4897: comment inside an expression in lambda ignores the rest
Problem: Comment inside an expression in lambda ignores the rest of the
expression.
Solution: Truncate the line at the comment. (closes #10367)
diff --git a/src/eval.c b/src/eval.c
index 317446c..41094cd 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2208,8 +2208,15 @@
garray_T *gap = &evalarg->eval_ga;
char_u *line;
- if (arg != NULL && *arg == NL)
- return skipwhite(arg + 1);
+ if (arg != NULL)
+ {
+ if (*arg == NL)
+ return skipwhite(arg + 1);
+ // Truncate before a trailing comment, so that concatenating the lines
+ // won't turn the rest into a comment.
+ if (*skipwhite(arg) == '#')
+ *arg = NUL;
+ }
if (evalarg->eval_cookie != NULL)
line = evalarg->eval_getline(0, evalarg->eval_cookie, 0,