Merge #7430 'Ignore virtcols after 32000'

This commit is contained in:
Justin M. Keyes 2017-10-22 16:43:43 +02:00 committed by GitHub
commit e35a66d396
2 changed files with 25 additions and 2 deletions

View File

@ -1273,8 +1273,8 @@ int plines_win_nofold(win_T *wp, linenr_T lnum)
* Add column offset for 'number', 'relativenumber' and 'foldcolumn'.
*/
width = wp->w_width - win_col_off(wp);
if (width <= 0) {
return 32000; // bigger than the number of lines of the screen
if (width <= 0 || col > 32000) {
return 32000; // bigger than the number of screen columns
}
if (col <= (unsigned int)width) {
return 1;

View File

@ -0,0 +1,23 @@
local helpers = require('test.functional.helpers')(after_each)
local clear = helpers.clear
local feed = helpers.feed
local eq = helpers.eq
local eval = helpers.eval
describe("'tabstop' option", function()
before_each(function()
clear()
end)
-- NOTE: Setting 'tabstop' to a big number reproduces crash #2838.
-- Disallowing big 'tabstop' would not fix #2838, only hide it.
it("tabstop=<big-number> does not crash #2838", function()
-- Insert a <Tab> character for 'tabstop' to work with.
feed('i<Tab><Esc>')
-- Set 'tabstop' to a very high value.
-- Use feed(), not command(), to provoke crash.
feed(':set tabstop=3000000000<CR>')
eq(2, eval("1+1")) -- Still alive?
end)
end)