comparison src/typval.c @ 24260:ad065f64eb20 v8.2.2671

patch 8.2.2671: error for line number in legacy script Commit: https://github.com/vim/vim/commit/f6bdd82c7e2076dbacb764a5d288189d61c68451 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Mar 28 16:26:41 2021 +0200 patch 8.2.2671: error for line number in legacy script Problem: Error for line number in legacy script. Solution: Check for number type.
author Bram Moolenaar <Bram@vim.org>
date Sun, 28 Mar 2021 16:30:02 +0200
parents 8b4159943d9a
children ddcda424f882
comparison
equal deleted inserted replaced
24259:b91a0ffa80f1 24260:ad065f64eb20
1619 { 1619 {
1620 linenr_T lnum = -1; 1620 linenr_T lnum = -1;
1621 1621
1622 if (argvars[0].v_type != VAR_STRING || !in_vim9script()) 1622 if (argvars[0].v_type != VAR_STRING || !in_vim9script())
1623 lnum = (linenr_T)tv_get_number_chk(&argvars[0], NULL); 1623 lnum = (linenr_T)tv_get_number_chk(&argvars[0], NULL);
1624 if (lnum < 0) // no valid number, try using arg like line() 1624 if (lnum <= 0 && argvars[0].v_type != VAR_NUMBER)
1625 { 1625 {
1626 int fnum; 1626 int fnum;
1627 pos_T *fp = var2fpos(&argvars[0], TRUE, &fnum, FALSE); 1627 pos_T *fp = var2fpos(&argvars[0], TRUE, &fnum, FALSE);
1628 1628
1629 // no valid number, try using arg like line()
1629 if (fp != NULL) 1630 if (fp != NULL)
1630 lnum = fp->lnum; 1631 lnum = fp->lnum;
1631 } 1632 }
1632 return lnum; 1633 return lnum;
1633 } 1634 }