To: vim_dev@googlegroups.com Subject: Patch 9.0.0732 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 9.0.0732 Problem: No check for white space before and after "=<<". (Doug Kearns) Solution: Check for white space in Vim9 script. (closes #11351) Files: src/evalvars.c, src/testdir/test_vim9_assign.vim *** ../vim-9.0.0731/src/evalvars.c 2022-10-01 19:43:48.606494048 +0100 --- src/evalvars.c 2022-10-12 12:42:00.563305223 +0100 *************** *** 1066,1076 **** } else if (expr[0] == '=' && expr[1] == '<' && expr[2] == '<') { ! list_T *l; long cur_lnum = SOURCING_LNUM; ! // HERE document ! l = heredoc_get(eap, expr + 3, FALSE, FALSE); if (l != NULL) { rettv_list_set(&rettv, l); --- 1066,1083 ---- } else if (expr[0] == '=' && expr[1] == '<' && expr[2] == '<') { ! list_T *l = NULL; long cur_lnum = SOURCING_LNUM; ! // :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); *** ../vim-9.0.0731/src/testdir/test_vim9_assign.vim 2022-09-18 13:46:03.699664837 +0100 --- src/testdir/test_vim9_assign.vim 2022-10-12 12:46:51.226661137 +0100 *************** *** 1904,1909 **** --- 1904,1928 ---- STOP END v9.CheckDefAndScriptFailure(lines, 'E1012: Type mismatch; expected number but got list', 1) + + lines =<< trim END + var lines=<< STOP + xxx + STOP + END + v9.CheckDefAndScriptFailure(lines, 'E1004: White space required before and after ''=<<'' at "=<< STOP"', 1) + lines =<< trim END + var lines =<