From d1cb65e44031e2e079463a388a10af615b2a0408 Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Sun, 1 Aug 2010 14:22:48 +0200
Subject: [PATCH] Fix: changing case of a character removed combining
 characters.

---
 src/ops.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/ops.c b/src/ops.c
index beab33c159..98bd2d171a 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -2433,7 +2433,8 @@ swapchar(op_type, pos)
 	    pos_T   sp = curwin->w_cursor;
 
 	    curwin->w_cursor = *pos;
-	    del_char(FALSE);
+	    /* don't use del_char(), it also removes composing chars */
+	    del_bytes(utf_ptr2len(ml_get_cursor()), FALSE, FALSE);
 	    ins_char(nc);
 	    curwin->w_cursor = sp;
 	}
-- 
GitLab