g_format_size: fix on Windows

The long format that displays the exact number of bytes with separators
(ie: "123,456,789 bytes") uses the ' format modifier, which is
unsupported on Windows.  Disable that for now, until we come up with a
better solution.
This commit is contained in:
Ryan Lortie 2011-07-26 13:29:01 +02:00
parent 01744c2d69
commit d62d0336b8

View File

@ -1940,7 +1940,17 @@ g_format_size_full (guint64 size,
/* Translators: the %s in "%s bytes" will always be replaced by a number. */
translated_format = g_dngettext(GETTEXT_PACKAGE, "%s byte", "%s bytes", plural_form);
/* XXX: Windows doesn't support the "'" format modifier, so we
* must not use it there. Instead, just display the number
* without separation. Bug #655336 is open until a solution is
* found.
*/
#ifndef G_OS_WIN32
formatted_number = g_strdup_printf ("%'"G_GUINT64_FORMAT, size);
#else
formatted_number = g_strdup_printf ("%"G_GUINT64_FORMAT, size);
#endif
g_string_append (string, " (");
g_string_append_printf (string, translated_format, formatted_number);
g_free (formatted_number);