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
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui