Mercurial > vim
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 } |