James Vega wrote:

> Since Vim can now open “largefiles” on 32-bit systems, there are some
> changes necessary to properly store/access the size of those files.
> This is easy to see as when you open a largefile, the status message
> showing the number of lines and characters in the file will have a
> negative number of characters for largefiles since the 32-bit long was
> overflowed.
>
> The attached patch (generated against 7d3cf4693a8f) changes the relevant
> buffer size pieces of the code to use off_t instead of long.
> Unfortunately, there isn't a standard way to format off_t for
> printf-style functions, so that required some preprocessor checks for
> what to use.  There may be a better way to do that, but it worked for
> me.
>
> I've tested this on Windows with VS Express 2008 and Linux (both 32-bit
> and 64-bit environments).


Hi James

This chunk...

@@ -5062,7 +5062,7 @@
        if (nchars == 1)
            STRCPY(p, _("1 character"));
        else
-           sprintf((char *)p, _("%ld characters"), nchars);
+           sprintf((char *)p, _(PRINTF_OFF_T" characters"), nchars);
     }
 }

Changes the translated string in src/po/??.po files from:

  #, c-format
  msgid "%ld characters"

... into:

  #, c-format
  msgid " characters"

Notice that the %ld has disappeared in the po file. Isn't it an issue?

Perhaps we should do it the less elegant way:

        if (nchars == 1)
            STRCPY(p, _("1 character"));
        else
            /* Can't use PRINTF_OFF_T here without confusing gettext */
#if defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T > SIZEOF_LONG)
           sprintf((char *)p, _("%lld characters"), nchars);
#else
           sprintf((char *)p, _("%ld characters"), nchars);
#endif

-- Dominique

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui