Mercurial > vim
diff src/vim9compile.c @ 21903:1fc2ffadf412 v8.2.1501
patch 8.2.1501: Vim9: concatenating to constant reverses order
Commit: https://github.com/vim/vim/commit/3fc71285d5ae7c16cf7be5d997fd1fe140f196da
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Aug 21 20:43:17 2020 +0200
patch 8.2.1501: Vim9: concatenating to constant reverses order
Problem: Vim9: concatenating to constant reverses order.
Solution: Generate constant before option, register and environment
variable. (closes #6757)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 21 Aug 2020 20:45:04 +0200 |
parents | 1ebcce655dd3 |
children | a211bca98bc3 |
line wrap: on
line diff
--- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -3402,19 +3402,25 @@ compile_expr7( /* * Option value: &name */ - case '&': ret = compile_get_option(arg, cctx); + case '&': if (generate_ppconst(cctx, ppconst) == FAIL) + return FAIL; + ret = compile_get_option(arg, cctx); break; /* * Environment variable: $VAR. */ - case '$': ret = compile_get_env(arg, cctx); + case '$': if (generate_ppconst(cctx, ppconst) == FAIL) + return FAIL; + ret = compile_get_env(arg, cctx); break; /* * Register contents: @r. */ - case '@': ret = compile_get_register(arg, cctx); + case '@': if (generate_ppconst(cctx, ppconst) == FAIL) + return FAIL; + ret = compile_get_register(arg, cctx); break; /* * nested expression: (expression).