# HG changeset patch # User Bram Moolenaar # Date 1550608208 -3600 # Node ID 46adcb6e27d7334de925d8681c63882b38951684 # Parent 6786356b229cf31047f07be0653b3f7a11e3101c patch 8.1.0953: a very long file is truncated at 2^31 lines commit https://github.com/vim/vim/commit/c9629251a634d4f5988c8162ba8249026d1af687 Author: Bram Moolenaar Date: Tue Feb 19 21:24:54 2019 +0100 patch 8.1.0953: a very long file is truncated at 2^31 lines Problem: A very long file is truncated at 2^31 lines. Solution: Use LONG_MAX for MAXLNUM. (Dominique Pelle, closes https://github.com/vim/vim/issues/4011) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -780,6 +780,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 953, +/**/ 952, /**/ 951, diff --git a/src/vim.h b/src/vim.h --- a/src/vim.h +++ b/src/vim.h @@ -54,6 +54,9 @@ Error: configure did not run properly. Check auto/config.log. # endif +// for INT_MAX, LONG_MAX et al. +#include + /* * Cygwin may have fchdir() in a newer release, but in most versions it * doesn't work well and avoiding it keeps the binary backward compatible. @@ -455,9 +458,6 @@ typedef unsigned int u8char_T; // int is # include #endif -/* for INT_MAX et al. */ -#include - /* * Allow other (non-unix) systems to configure themselves now * These are also in os_unix.h, because osdef.sh needs them there. @@ -1666,17 +1666,17 @@ typedef unsigned short disptick_T; /* di * not a real problem. BTW: Longer lines are split. */ #ifdef __MVS__ -# define MAXCOL (0x3fffffffL) /* maximum column number, 30 bits */ -# define MAXLNUM (0x3fffffffL) /* maximum (invalid) line number */ +# define MAXCOL (0x3fffffffL) // maximum column number, 30 bits +# define MAXLNUM (0x3fffffffL) // maximum (invalid) line number #else -# define MAXCOL (0x7fffffffL) /* maximum column number, 31 bits */ -# define MAXLNUM (0x7fffffffL) /* maximum (invalid) line number */ +# define MAXCOL INT_MAX // maximum column number +# define MAXLNUM LONG_MAX // maximum (invalid) line number #endif -#define SHOWCMD_COLS 10 /* columns needed by shown command */ -#define STL_MAX_ITEM 80 /* max nr of % in statusline */ +#define SHOWCMD_COLS 10 // columns needed by shown command +#define STL_MAX_ITEM 80 // max nr of % in statusline -typedef void *vim_acl_T; /* dummy to pass an ACL to a function */ +typedef void *vim_acl_T; // dummy to pass an ACL to a function #ifndef mch_memmove # define mch_memmove(to, from, len) memmove((char*)(to), (char*)(from), (size_t)(len))