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 {