comparison src/eval.c @ 28031:4aa79224acd2 v8.2.4540

patch 8.2.4540: line number for error is off by one Commit: https://github.com/vim/vim/commit/1b1df95f1a84cbc362e32f676f1e135aa2e7fc3c Author: Bram Moolenaar <Bram@vim.org> Date: Thu Mar 10 20:01:50 2022 +0000 patch 8.2.4540: line number for error is off by one Problem: Line number for error is off by one. Solution: Remember the line number of the comparison. (closes https://github.com/vim/vim/issues/9923)
author Bram Moolenaar <Bram@vim.org>
date Thu, 10 Mar 2022 21:15:04 +0100
parents 1012048eed26
children b47698ee4a14
comparison
equal deleted inserted replaced
28030:7c6b90dd119e 28031:4aa79224acd2
2847 typval_T var2; 2847 typval_T var2;
2848 int ic; 2848 int ic;
2849 int vim9script = in_vim9script(); 2849 int vim9script = in_vim9script();
2850 int evaluate = evalarg == NULL 2850 int evaluate = evalarg == NULL
2851 ? 0 : (evalarg->eval_flags & EVAL_EVALUATE); 2851 ? 0 : (evalarg->eval_flags & EVAL_EVALUATE);
2852 long comp_lnum = SOURCING_LNUM;
2852 2853
2853 if (getnext) 2854 if (getnext)
2854 { 2855 {
2855 *arg = eval_next_line(evalarg); 2856 *arg = eval_next_line(evalarg);
2856 p = *arg; 2857 p = *arg;
2902 } 2903 }
2903 if (evaluate) 2904 if (evaluate)
2904 { 2905 {
2905 int ret; 2906 int ret;
2906 2907
2908 // use the line of the comparison for messages
2909 SOURCING_LNUM = comp_lnum;
2907 if (vim9script && check_compare_types(type, rettv, &var2) == FAIL) 2910 if (vim9script && check_compare_types(type, rettv, &var2) == FAIL)
2908 { 2911 {
2909 ret = FAIL; 2912 ret = FAIL;
2910 clear_tv(rettv); 2913 clear_tv(rettv);
2911 } 2914 }