0
0
mirror of https://github.com/vim/vim.git synced 2025-10-01 04:54:07 -04:00

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)
This commit is contained in:
Bram Moolenaar
2019-02-19 21:24:54 +01:00
parent bbd854dc57
commit c9629251a6
2 changed files with 12 additions and 10 deletions

View File

@@ -779,6 +779,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
953,
/**/ /**/
952, 952,
/**/ /**/

View File

@@ -54,6 +54,9 @@
Error: configure did not run properly. Check auto/config.log. Error: configure did not run properly. Check auto/config.log.
# endif # endif
// for INT_MAX, LONG_MAX et al.
#include <limits.h>
/* /*
* Cygwin may have fchdir() in a newer release, but in most versions it * 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. * 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 <errno.h> # include <errno.h>
#endif #endif
/* for INT_MAX et al. */
#include <limits.h>
/* /*
* Allow other (non-unix) systems to configure themselves now * Allow other (non-unix) systems to configure themselves now
* These are also in os_unix.h, because osdef.sh needs them there. * 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. * not a real problem. BTW: Longer lines are split.
*/ */
#ifdef __MVS__ #ifdef __MVS__
# define MAXCOL (0x3fffffffL) /* maximum column number, 30 bits */ # define MAXCOL (0x3fffffffL) // maximum column number, 30 bits
# define MAXLNUM (0x3fffffffL) /* maximum (invalid) line number */ # define MAXLNUM (0x3fffffffL) // maximum (invalid) line number
#else #else
# define MAXCOL (0x7fffffffL) /* maximum column number, 31 bits */ # define MAXCOL INT_MAX // maximum column number
# define MAXLNUM (0x7fffffffL) /* maximum (invalid) line number */ # define MAXLNUM LONG_MAX // maximum (invalid) line number
#endif #endif
#define SHOWCMD_COLS 10 /* columns needed by shown command */ #define SHOWCMD_COLS 10 // columns needed by shown command
#define STL_MAX_ITEM 80 /* max nr of %<flag> in statusline */ #define STL_MAX_ITEM 80 // max nr of %<flag> 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 #ifndef mch_memmove
# define mch_memmove(to, from, len) memmove((char*)(to), (char*)(from), (size_t)(len)) # define mch_memmove(to, from, len) memmove((char*)(to), (char*)(from), (size_t)(len))