From 02f8694a6bd116ab3316add4a7ea6735bf2e8839 Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Tue, 17 Aug 2021 22:14:29 +0200
Subject: [PATCH] patch 8.2.3357: crash when 'virtualedit' is set and window is
 narrow

Problem:    Crash when 'virtualedit' is set and window is narrow. ()
Solution:   Check that width is not zero. (closes #8767)
---
 src/misc2.c                 |  3 ++-
 src/testdir/test_number.vim | 11 +++++++++++
 src/version.c               |  2 ++
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/misc2.c b/src/misc2.c
index 271014f7a3..2436f9fb06 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -161,7 +161,8 @@ coladvance2(
 	if (finetune
 		&& curwin->w_p_wrap
 		&& curwin->w_width != 0
-		&& wcol >= (colnr_T)width)
+		&& wcol >= (colnr_T)width
+		&& width > 0)
 	{
 	    csize = linetabsize(line);
 	    if (csize > 0)
diff --git a/src/testdir/test_number.vim b/src/testdir/test_number.vim
index 13f8de719d..78cd6f9012 100644
--- a/src/testdir/test_number.vim
+++ b/src/testdir/test_number.vim
@@ -320,4 +320,15 @@ func Test_number_rightleft()
   bw!
 endfunc
 
+" This used to cause a divide by zero
+func Test_number_no_text_virtual_edit()
+  vnew
+  call setline(1, ['line one', 'line two'])
+  set number virtualedit=all
+  normal w
+  4wincmd |
+  normal j
+  bwipe!
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index 97a58e3c02..727257d28d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    3357,
 /**/
     3356,
 /**/
-- 
GitLab