patch 7.4.975
Problem: Using ":sort" on a very big file sometimes causes text to be
corrupted. (John Beckett)
Solution: Copy the line into a buffer before calling ml_append().
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index c2b600c..05d4721 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -540,10 +540,11 @@
if (!unique || i == 0
|| (sort_ic ? STRICMP(s, sortbuf1) : STRCMP(s, sortbuf1)) != 0)
{
- if (ml_append(lnum++, s, (colnr_T)0, FALSE) == FAIL)
+ /* Copy the line into a buffer, it may become invalid in
+ * ml_append(). And it's needed for "unique". */
+ STRCPY(sortbuf1, s);
+ if (ml_append(lnum++, sortbuf1, (colnr_T)0, FALSE) == FAIL)
break;
- if (unique)
- STRCPY(sortbuf1, s);
}
fast_breakcheck();
if (got_int)
diff --git a/src/version.c b/src/version.c
index 899e27f..f7a4a20 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 975,
+/**/
974,
/**/
973,