Mercurial > vim
comparison src/ex_eval.c @ 25680:8556ded8a462 v8.2.3376
patch 8.2.3376: Vim9: no warning that "@r" does not do anything
Commit: https://github.com/vim/vim/commit/4799cef85ce43e26f5022290b41a7c85bbab8cad
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Aug 25 22:37:36 2021 +0200
patch 8.2.3376: Vim9: no warning that "@r" does not do anything
Problem: Vim9: no warning that "@r" does not do anything.
Solution: Give a "no effect" error. (closes https://github.com/vim/vim/issues/8779)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 25 Aug 2021 22:45:04 +0200 |
parents | 9f691e8a74e3 |
children | a58520ab7c3b |
comparison
equal
deleted
inserted
replaced
25679:b633748f3acb | 25680:8556ded8a462 |
---|---|
885 if (debug_break_level <= 0) | 885 if (debug_break_level <= 0) |
886 verbose_leave(); | 886 verbose_leave(); |
887 } | 887 } |
888 } | 888 } |
889 | 889 |
890 int | |
891 cmd_is_name_only(char_u *arg) | |
892 { | |
893 char_u *p = arg; | |
894 char_u *alias; | |
895 int name_only = FALSE; | |
896 | |
897 if (*p == '&') | |
898 { | |
899 ++p; | |
900 if (STRNCMP("l:", p, 2) == 0 || STRNCMP("g:", p, 2) == 0) | |
901 p += 2; | |
902 } | |
903 else if (*p == '@') | |
904 ++p; | |
905 get_name_len(&p, &alias, FALSE, FALSE); | |
906 name_only = ends_excmd2(arg, skipwhite(p)); | |
907 vim_free(alias); | |
908 return name_only; | |
909 } | |
890 | 910 |
891 /* | 911 /* |
892 * ":eval". | 912 * ":eval". |
893 */ | 913 */ |
894 void | 914 void |
895 ex_eval(exarg_T *eap) | 915 ex_eval(exarg_T *eap) |
896 { | 916 { |
897 typval_T tv; | 917 typval_T tv; |
898 evalarg_T evalarg; | 918 evalarg_T evalarg; |
899 int name_only = FALSE; | 919 int name_only = FALSE; |
900 char_u *p; | |
901 long lnum = SOURCING_LNUM; | 920 long lnum = SOURCING_LNUM; |
902 | 921 |
903 if (in_vim9script()) | 922 if (in_vim9script()) |
904 { | 923 name_only = cmd_is_name_only(eap->arg); |
905 char_u *alias; | |
906 | |
907 p = eap->arg; | |
908 get_name_len(&p, &alias, FALSE, FALSE); | |
909 name_only = ends_excmd2(eap->arg, skipwhite(p)); | |
910 vim_free(alias); | |
911 } | |
912 | 924 |
913 fill_evalarg_from_eap(&evalarg, eap, eap->skip); | 925 fill_evalarg_from_eap(&evalarg, eap, eap->skip); |
914 | 926 |
915 if (eval0(eap->arg, &tv, eap, &evalarg) == OK) | 927 if (eval0(eap->arg, &tv, eap, &evalarg) == OK) |
916 { | 928 { |