mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge #7939 "fix crash: 'spell' and long lines"
This commit is contained in:
commit
2cfc1b055b
@ -3353,10 +3353,11 @@ win_line (
|
||||
|
||||
/* Use nextline[] if possible, it has the start of the
|
||||
* next line concatenated. */
|
||||
if ((prev_ptr - line) - nextlinecol >= 0)
|
||||
p = nextline + (prev_ptr - line) - nextlinecol;
|
||||
else
|
||||
if ((prev_ptr - line) - nextlinecol >= 0) {
|
||||
p = nextline + ((prev_ptr - line) - nextlinecol);
|
||||
} else {
|
||||
p = prev_ptr;
|
||||
}
|
||||
cap_col -= (int)(prev_ptr - line);
|
||||
size_t tmplen = spell_check(wp, p, &spell_hlf, &cap_col, nochange);
|
||||
assert(tmplen <= INT_MAX);
|
||||
|
49
test/functional/ui/spell_spec.lua
Normal file
49
test/functional/ui/spell_spec.lua
Normal file
@ -0,0 +1,49 @@
|
||||
-- Test for scenarios involving 'spell'
|
||||
|
||||
local helpers = require('test.functional.helpers')(after_each)
|
||||
local Screen = require('test.functional.ui.screen')
|
||||
local clear = helpers.clear
|
||||
local feed = helpers.feed
|
||||
local feed_command = helpers.feed_command
|
||||
local insert = helpers.insert
|
||||
|
||||
describe("'spell'", function()
|
||||
local screen
|
||||
|
||||
before_each(function()
|
||||
clear()
|
||||
screen = Screen.new(80, 8)
|
||||
screen:attach()
|
||||
screen:set_default_attr_ids( {
|
||||
[0] = {bold=true, foreground=Screen.colors.Blue},
|
||||
[1] = {special = Screen.colors.Red, undercurl = true}
|
||||
})
|
||||
end)
|
||||
|
||||
after_each(function()
|
||||
screen:detach()
|
||||
end)
|
||||
|
||||
it('joins long lines #7937', function()
|
||||
feed_command('set spell')
|
||||
insert([[
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
||||
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
||||
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
|
||||
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
|
||||
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
]])
|
||||
feed('ggJJJJJJ0')
|
||||
screen:expect([[
|
||||
{1:^Lorem} {1:ipsum} dolor sit {1:amet}, {1:consectetur} {1:adipiscing} {1:elit}, {1:sed} do {1:eiusmod} {1:tempor} {1:i}|
|
||||
{1:ncididunt} {1:ut} {1:labore} {1:et} {1:dolore} {1:magna} {1:aliqua}. {1:Ut} {1:enim} ad minim {1:veniam}, {1:quis} {1:nostru}|
|
||||
{1:d} {1:exercitation} {1:ullamco} {1:laboris} {1:nisi} {1:ut} {1:aliquip} ex ea {1:commodo} {1:consequat}. {1:Duis} {1:aut}|
|
||||
{1:e} {1:irure} dolor in {1:reprehenderit} in {1:voluptate} {1:velit} {1:esse} {1:cillum} {1:dolore} {1:eu} {1:fugiat} {1:n}|
|
||||
{1:ulla} {1:pariatur}. {1:Excepteur} {1:sint} {1:occaecat} {1:cupidatat} non {1:proident}, {1:sunt} in culpa {1:qui}|
|
||||
{1:officia} {1:deserunt} {1:mollit} {1:anim} id est {1:laborum}. |
|
||||
{0:~ }|
|
||||
|
|
||||
]])
|
||||
end)
|
||||
end)
|
Loading…
Reference in New Issue
Block a user