diff src/memline.c @ 25050:7ef7a211f6bf v8.2.3062

patch 8.2.3062: internal error when adding several text properties Commit: https://github.com/vim/vim/commit/4cd5c52d64a66ad1984d33462a40e0c6721ca232 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jun 27 13:04:00 2021 +0200 patch 8.2.3062: internal error when adding several text properties Problem: Internal error when adding several text properties. Solution: Do not handle text properties when deleting a line for splitting a data block. (closes #8466)
author Bram Moolenaar <Bram@vim.org>
date Sun, 27 Jun 2021 13:15:03 +0200
parents 85d1e82ed134
children a37cf57980f9
line wrap: on
line diff
--- a/src/memline.c
+++ b/src/memline.c
@@ -3662,7 +3662,7 @@ ml_delete_int(buf_T *buf, linenr_T lnum,
 #ifdef FEAT_PROP_POPUP
     // If there are text properties, make a copy, so that we can update
     // properties in preceding and following lines.
-    if (buf->b_has_textprop && !(flags & ML_DEL_UNDO))
+    if (buf->b_has_textprop && !(flags & (ML_DEL_UNDO | ML_DEL_NOPROP)))
     {
 	size_t	textlen = STRLEN((char_u *)dp + line_start) + 1;
 
@@ -3765,9 +3765,11 @@ theend:
     {
 	// Adjust text properties in the line above and below.
 	if (lnum > 1)
-	    adjust_text_props_for_delete(buf, lnum - 1, textprop_save, textprop_save_len, TRUE);
+	    adjust_text_props_for_delete(buf, lnum - 1, textprop_save,
+						      textprop_save_len, TRUE);
 	if (lnum <= buf->b_ml.ml_line_count)
-	    adjust_text_props_for_delete(buf, lnum, textprop_save, textprop_save_len, FALSE);
+	    adjust_text_props_for_delete(buf, lnum, textprop_save,
+						     textprop_save_len, FALSE);
     }
     vim_free(textprop_save);
 #endif
@@ -4021,7 +4023,7 @@ ml_flush_line(buf_T *buf)
 			     | ML_APPEND_NOPROP
 #endif
 			 );
-		(void)ml_delete_int(buf, lnum, 0);
+		(void)ml_delete_int(buf, lnum, ML_DEL_NOPROP);
 	    }
 	}
 	vim_free(new_line);