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