From 0ca4b350f0fad7bfdc9722e3e7eb1af5fb2e5843 Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Thu, 11 Feb 2010 18:54:43 +0100
Subject: [PATCH] updated for version 7.2.359 Problem:    Crash when using the
 Netbeans join command. Solution:   Make sure the ml_flush_line() function is
 not used recursively.             (Xavier de Gaye)

---
 src/memline.c | 9 +++++++++
 src/version.c | 2 ++
 2 files changed, 11 insertions(+)

diff --git a/src/memline.c b/src/memline.c
index 480e93cf64..29a6e5cca3 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -3087,12 +3087,19 @@ ml_flush_line(buf)
     int		start;
     int		count;
     int		i;
+    static int  entered = FALSE;
 
     if (buf->b_ml.ml_line_lnum == 0 || buf->b_ml.ml_mfp == NULL)
 	return;		/* nothing to do */
 
     if (buf->b_ml.ml_flags & ML_LINE_DIRTY)
     {
+	/* This code doesn't work recursively, but Netbeans may call back here
+	 * when obtaining the cursor position. */
+	if (entered)
+	    return;
+	entered = TRUE;
+
 	lnum = buf->b_ml.ml_line_lnum;
 	new_line = buf->b_ml.ml_line_ptr;
 
@@ -3160,6 +3167,8 @@ ml_flush_line(buf)
 	    }
 	}
 	vim_free(new_line);
+
+	entered = FALSE;
     }
 
     buf->b_ml.ml_line_lnum = 0;
diff --git a/src/version.c b/src/version.c
index d71cbbc273..5ffee97d22 100644
--- a/src/version.c
+++ b/src/version.c
@@ -681,6 +681,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    359,
 /**/
     358,
 /**/
-- 
GitLab