Bram Moolenaar wrote:
> OK, so we do need to worry about this.
>
> This patch to message.c, replacing the previous one, should do it.
I've tried the additional patch, and some brief testing worked well.
However, there is a compiler warning due to converting double to size_t. That
could
be fixed with:
*** bram/message.c
--- src/message.c
***************
*** 4533,4541 ****
l = 1;
if (precision_specified)
{
! if (fmt_spec == 'f'
! && log10(f) + precision > TMP_LEN - 10)
! precision = TMP_LEN - 10 - log10(f);
else if (precision > TMP_LEN - 10)
precision = TMP_LEN - 10;
l += sprintf(format + 1, ".%d", precision);
--- 4533,4541 ----
l = 1;
if (precision_specified)
{
! if (fmt_spec == 'f' &&
! (size_t)log10(f) + precision > TMP_LEN - 10)
! precision = TMP_LEN - 10 - (size_t)log10(f);
else if (precision > TMP_LEN - 10)
precision = TMP_LEN - 10;
l += sprintf(format + 1, ".%d", precision);
Due to rounding differences, the above can generate a precision that is 1 more
than
occurred in the original, but the '- 10' should take care of that.
John
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---