Mercurial > vim
diff src/evalvars.c @ 30795:b8cda1e1c985 v9.0.0732
patch 9.0.0732: no check for white space before and after "=<<"
Commit: https://github.com/vim/vim/commit/d987642626f84fe2f0b32a1ca5ede31b436ce677
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Oct 12 12:58:54 2022 +0100
patch 9.0.0732: no check for white space before and after "=<<"
Problem: No check for white space before and after "=<<". (Doug Kearns)
Solution: Check for white space in Vim9 script. (closes https://github.com/vim/vim/issues/11351)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 12 Oct 2022 14:00:04 +0200 |
parents | 37aa9fd2ed72 |
children | d50d32026617 |
line wrap: on
line diff
--- a/src/evalvars.c +++ b/src/evalvars.c @@ -1066,11 +1066,18 @@ ex_let(exarg_T *eap) } else if (expr[0] == '=' && expr[1] == '<' && expr[2] == '<') { - list_T *l; + list_T *l = NULL; long cur_lnum = SOURCING_LNUM; - // HERE document - l = heredoc_get(eap, expr + 3, FALSE, FALSE); + // :let text =<< [trim] [eval] END + // :var text =<< [trim] [eval] END + if (vim9script && !eap->skip && (!VIM_ISWHITE(expr[-1]) + || !IS_WHITE_OR_NUL(expr[3]))) + semsg(_(e_white_space_required_before_and_after_str_at_str), + "=<<", expr); + else + l = heredoc_get(eap, expr + 3, FALSE, FALSE); + if (l != NULL) { rettv_list_set(&rettv, l);