From 75e3ad019933f4879137775549261bf51985ab7d Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 17 Dec 2015 15:07:32 +0100 Subject: [PATCH] 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(). --- src/ex_cmds.c | 7 ++++--- src/version.c | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/ex_cmds.c b/src/ex_cmds.c index c2b600c5b..05d4721d6 100644 --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -540,10 +540,11 @@ ex_sort(eap) 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 899e27f49..f7a4a2045 100644 --- a/src/version.c +++ b/src/version.c @@ -741,6 +741,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 975, /**/ 974, /**/ -- 2.50.1