patch 8.0.0530: buffer overflow when 'columns' is very big
Problem: Buffer overflow when 'columns' is very big. (Nikolai Pavlov)
Solution: Correctly compute where to truncate. Fix translation.
(closes #1600)
diff --git a/src/testdir/test_edit.vim b/src/testdir/test_edit.vim
index 344c126..b43f84b 100644
--- a/src/testdir/test_edit.vim
+++ b/src/testdir/test_edit.vim
@@ -1322,3 +1322,24 @@
set norightleft
bw!
endfunc
+
+func Test_edit_complete_very_long_name()
+ let save_columns = &columns
+ set columns=5000
+ call assert_equal(5000, &columns)
+ set noswapfile
+ let dirname = getcwd() . "/Xdir"
+ let longdirname = dirname . repeat('/' . repeat('d', 255), 4)
+ let longfilename = longdirname . '/' . repeat('a', 255)
+ call mkdir(longdirname, 'p')
+ call writefile(['Totum', 'Table'], longfilename)
+ new
+ exe "next Xfile " . longfilename
+ exe "normal iT\<C-N>"
+
+ bwipe!
+ exe 'bwipe! ' . longfilename
+ call delete(dirname, 'rf')
+ let &columns = save_columns
+ set swapfile&
+endfunc