From: Bram Moolenaar Date: Tue, 19 Feb 2019 20:24:54 +0000 (+0100) Subject: patch 8.1.0953: a very long file is truncated at 2^31 lines X-Git-Tag: v8.1.0953 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c9629251a634d4f5988c8162ba8249026d1af687;p=vim 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 #4011) --- diff --git a/src/version.c b/src/version.c index 16ab49391..a266ce08f 100644 --- a/src/version.c +++ b/src/version.c @@ -779,6 +779,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 953, /**/ 952, /**/ diff --git a/src/vim.h b/src/vim.h index 0bc6ad3ee..fbae72d8d 100644 --- 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 32 bits or more # 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; /* display tick type */ * 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))