diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-02-17 22:12:50 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-02-17 22:12:50 +0100 |
commit | 82f654e092ac5b86316bc1b30c0b07a849813186 (patch) | |
tree | 8a6ba00df3ea0f536d4fe559f0f6093146466062 /src/message.c | |
parent | bc2b71d44a0b90b6aeb3534a76912fccbe5577df (diff) | |
download | vim-git-82f654e092ac5b86316bc1b30c0b07a849813186.tar.gz |
patch 8.2.0271: the "num64" feature is available everywherev8.2.0271
Problem: The "num64" feature is available everywhere and building without
it causes problems.
Solution: Graduage the "num64" feature. (James McCoy, closes #5650)
Diffstat (limited to 'src/message.c')
-rw-r--r-- | src/message.c | 36 |
1 files changed, 8 insertions, 28 deletions
diff --git a/src/message.c b/src/message.c index 935fd8c44..9ab0eaefe 100644 --- a/src/message.c +++ b/src/message.c @@ -4246,10 +4246,8 @@ vim_vsnprintf_typval( # define TMP_LEN 350 // On my system 1e308 is the biggest number possible. // That sounds reasonable to use as the maximum // printable. -# elif defined(FEAT_NUM64) -# define TMP_LEN 66 # else -# define TMP_LEN 34 +# define TMP_LEN 66 # endif char tmp[TMP_LEN]; @@ -4374,11 +4372,7 @@ vim_vsnprintf_typval( if (length_modifier == 'l' && *p == 'l') { // double l = long long -# ifdef FEAT_NUM64 length_modifier = 'L'; -# else - length_modifier = 'l'; // treat it as a single 'l' -# endif p++; } } @@ -4394,7 +4388,7 @@ vim_vsnprintf_typval( default: break; } -# if defined(FEAT_EVAL) && defined(FEAT_NUM64) +# if defined(FEAT_EVAL) switch (fmt_spec) { case 'd': case 'u': case 'o': case 'x': case 'X': @@ -4516,11 +4510,9 @@ vim_vsnprintf_typval( long int long_arg = 0; unsigned long int ulong_arg = 0; -# ifdef FEAT_NUM64 // only defined for length modifier ll varnumber_T llong_arg = 0; uvarnumber_T ullong_arg = 0; -# endif // only defined for b conversion uvarnumber_T bin_arg = 0; @@ -4581,19 +4573,17 @@ vim_vsnprintf_typval( else if (long_arg < 0) arg_sign = -1; break; -# ifdef FEAT_NUM64 case 'L': llong_arg = -# if defined(FEAT_EVAL) +# if defined(FEAT_EVAL) tvs != NULL ? tv_nr(tvs, &arg_idx) : -# endif +# endif va_arg(ap, varnumber_T); if (llong_arg > 0) arg_sign = 1; else if (llong_arg < 0) arg_sign = -1; break; -# endif } } else @@ -4622,18 +4612,16 @@ vim_vsnprintf_typval( if (ulong_arg != 0) arg_sign = 1; break; -# ifdef FEAT_NUM64 case 'L': ullong_arg = -# if defined(FEAT_EVAL) +# if defined(FEAT_EVAL) tvs != NULL ? (uvarnumber_T) tv_nr(tvs, &arg_idx) : -# endif +# endif va_arg(ap, uvarnumber_T); if (ullong_arg != 0) arg_sign = 1; break; -# endif } } @@ -4687,17 +4675,13 @@ vim_vsnprintf_typval( ; else if (length_modifier == 'L') { -# ifdef FEAT_NUM64 -# ifdef MSWIN +# ifdef MSWIN f[f_l++] = 'I'; f[f_l++] = '6'; f[f_l++] = '4'; -# else - f[f_l++] = 'l'; - f[f_l++] = 'l'; -# endif # else f[f_l++] = 'l'; + f[f_l++] = 'l'; # endif } else @@ -4735,11 +4719,9 @@ vim_vsnprintf_typval( case 'l': str_arg_l += sprintf( tmp + str_arg_l, f, long_arg); break; -# ifdef FEAT_NUM64 case 'L': str_arg_l += sprintf( tmp + str_arg_l, f, llong_arg); break; -# endif } } else @@ -4754,11 +4736,9 @@ vim_vsnprintf_typval( case 'l': str_arg_l += sprintf( tmp + str_arg_l, f, ulong_arg); break; -# ifdef FEAT_NUM64 case 'L': str_arg_l += sprintf( tmp + str_arg_l, f, ullong_arg); break; -# endif } } |