fix: use no_ff instead of ffdos as condition

Problem: line2byte behavior is changed after commit b051b13. It no
longer return `-1` on empty buffer.

Solution: use `nof_ff` instead of `!ff_dos` as condition. Then
compatible behavior of line2byte() is restored.
This commit is contained in:
glepnir 2023-12-09 17:28:28 +08:00
parent 0b74ad0a64
commit d95e3a4c9c
2 changed files with 2 additions and 1 deletions

View File

@ -3907,7 +3907,7 @@ int ml_find_line_or_offset(buf_T *buf, linenr_T lnum, int *offp, bool no_ff)
|| lnum < 0) {
// memline is currently empty. Although if it is loaded,
// it behaves like there is one empty line.
if (!ffdos && buf->b_ml.ml_mfp && (lnum == 1 || lnum == 2)) {
if (no_ff && buf->b_ml.ml_mfp && (lnum == 1 || lnum == 2)) {
return lnum - 1;
}
return -1;

View File

@ -1876,6 +1876,7 @@ describe('api/buf', function()
it('works in empty buffer', function()
eq(0, get_offset(0))
eq(1, get_offset(1))
eq(-1, funcs.line2byte('$'))
end)
it('works in buffer with one line inserted', function()