mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 11:26:16 +01:00
gutils: Use no-break space in g_format_size()
It's undesirable for quantity and unit to be separated by line breaks. Fixes https://gitlab.gnome.org/GNOME/glib/issues/1625
This commit is contained in:
parent
c33a98f42f
commit
3da40e9036
@ -2378,36 +2378,60 @@ g_format_size_full (guint64 size,
|
||||
|
||||
const struct Format formats[4][6] = {
|
||||
{
|
||||
{ KILOBYTE_FACTOR, N_("%.1f kB") },
|
||||
{ MEGABYTE_FACTOR, N_("%.1f MB") },
|
||||
{ GIGABYTE_FACTOR, N_("%.1f GB") },
|
||||
{ TERABYTE_FACTOR, N_("%.1f TB") },
|
||||
{ PETABYTE_FACTOR, N_("%.1f PB") },
|
||||
{ EXABYTE_FACTOR, N_("%.1f EB") }
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ KILOBYTE_FACTOR, N_("%.1f kB") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ MEGABYTE_FACTOR, N_("%.1f MB") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ GIGABYTE_FACTOR, N_("%.1f GB") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ TERABYTE_FACTOR, N_("%.1f TB") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ PETABYTE_FACTOR, N_("%.1f PB") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ EXABYTE_FACTOR, N_("%.1f EB") }
|
||||
},
|
||||
{
|
||||
{ KIBIBYTE_FACTOR, N_("%.1f KiB") },
|
||||
{ MEBIBYTE_FACTOR, N_("%.1f MiB") },
|
||||
{ GIBIBYTE_FACTOR, N_("%.1f GiB") },
|
||||
{ TEBIBYTE_FACTOR, N_("%.1f TiB") },
|
||||
{ PEBIBYTE_FACTOR, N_("%.1f PiB") },
|
||||
{ EXBIBYTE_FACTOR, N_("%.1f EiB") }
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ KIBIBYTE_FACTOR, N_("%.1f KiB") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ MEBIBYTE_FACTOR, N_("%.1f MiB") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ GIBIBYTE_FACTOR, N_("%.1f GiB") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ TEBIBYTE_FACTOR, N_("%.1f TiB") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ PEBIBYTE_FACTOR, N_("%.1f PiB") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ EXBIBYTE_FACTOR, N_("%.1f EiB") }
|
||||
},
|
||||
{
|
||||
{ KILOBYTE_FACTOR, N_("%.1f kb") },
|
||||
{ MEGABYTE_FACTOR, N_("%.1f Mb") },
|
||||
{ GIGABYTE_FACTOR, N_("%.1f Gb") },
|
||||
{ TERABYTE_FACTOR, N_("%.1f Tb") },
|
||||
{ PETABYTE_FACTOR, N_("%.1f Pb") },
|
||||
{ EXABYTE_FACTOR, N_("%.1f Eb") }
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ KILOBYTE_FACTOR, N_("%.1f kb") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ MEGABYTE_FACTOR, N_("%.1f Mb") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ GIGABYTE_FACTOR, N_("%.1f Gb") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ TERABYTE_FACTOR, N_("%.1f Tb") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ PETABYTE_FACTOR, N_("%.1f Pb") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ EXABYTE_FACTOR, N_("%.1f Eb") }
|
||||
},
|
||||
{
|
||||
{ KIBIBYTE_FACTOR, N_("%.1f Kib") },
|
||||
{ MEBIBYTE_FACTOR, N_("%.1f Mib") },
|
||||
{ GIBIBYTE_FACTOR, N_("%.1f Gib") },
|
||||
{ TEBIBYTE_FACTOR, N_("%.1f Tib") },
|
||||
{ PEBIBYTE_FACTOR, N_("%.1f Pib") },
|
||||
{ EXBIBYTE_FACTOR, N_("%.1f Eib") }
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ KIBIBYTE_FACTOR, N_("%.1f Kib") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ MEBIBYTE_FACTOR, N_("%.1f Mib") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ GIBIBYTE_FACTOR, N_("%.1f Gib") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ TEBIBYTE_FACTOR, N_("%.1f Tib") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ PEBIBYTE_FACTOR, N_("%.1f Pib") },
|
||||
/* Translators: Keep the no-break space between %.1f and the unit symbol */
|
||||
{ EXBIBYTE_FACTOR, N_("%.1f Eib") }
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -538,57 +538,58 @@ test_format_size_for_display (void)
|
||||
check_string (g_format_size (0), "0 bytes");
|
||||
check_string (g_format_size (1), "1 byte");
|
||||
check_string (g_format_size (2), "2 bytes");
|
||||
check_string (g_format_size (1000ULL), "1.0 kB");
|
||||
check_string (g_format_size (1000ULL * 1000), "1.0 MB");
|
||||
check_string (g_format_size (1000ULL * 1000 * 1000), "1.0 GB");
|
||||
check_string (g_format_size (1000ULL * 1000 * 1000 * 1000), "1.0 TB");
|
||||
check_string (g_format_size (1000ULL * 1000 * 1000 * 1000 * 1000), "1.0 PB");
|
||||
check_string (g_format_size (1000ULL * 1000 * 1000 * 1000 * 1000 * 1000), "1.0 EB");
|
||||
/* '\302\240' is a no-break space, to keep quantity and unit symbol together at line breaks*/
|
||||
check_string (g_format_size (1000ULL), "1.0\302\240kB");
|
||||
check_string (g_format_size (1000ULL * 1000), "1.0\302\240MB");
|
||||
check_string (g_format_size (1000ULL * 1000 * 1000), "1.0\302\240GB");
|
||||
check_string (g_format_size (1000ULL * 1000 * 1000 * 1000), "1.0\302\240TB");
|
||||
check_string (g_format_size (1000ULL * 1000 * 1000 * 1000 * 1000), "1.0\302\240PB");
|
||||
check_string (g_format_size (1000ULL * 1000 * 1000 * 1000 * 1000 * 1000), "1.0\302\240EB");
|
||||
|
||||
check_string (g_format_size_full (0, G_FORMAT_SIZE_IEC_UNITS), "0 bytes");
|
||||
check_string (g_format_size_full (1, G_FORMAT_SIZE_IEC_UNITS), "1 byte");
|
||||
check_string (g_format_size_full (2, G_FORMAT_SIZE_IEC_UNITS), "2 bytes");
|
||||
|
||||
check_string (g_format_size_full (2048ULL, G_FORMAT_SIZE_IEC_UNITS), "2.0 KiB");
|
||||
check_string (g_format_size_full (2048ULL * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0 MiB");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0 GiB");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0 TiB");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024 * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0 PiB");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024 * 1024 * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0 EiB");
|
||||
check_string (g_format_size_full (2048ULL, G_FORMAT_SIZE_IEC_UNITS), "2.0\302\240KiB");
|
||||
check_string (g_format_size_full (2048ULL * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0\302\240MiB");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0\302\240GiB");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0\302\240TiB");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024 * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0\302\240PiB");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024 * 1024 * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0\302\240EiB");
|
||||
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_IEC_UNITS), "227.4 MiB");
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_DEFAULT), "238.5 MB");
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_LONG_FORMAT), "238.5 MB (238472938 bytes)");
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_IEC_UNITS), "227.4\302\240MiB");
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_DEFAULT), "238.5\302\240MB");
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_LONG_FORMAT), "238.5\302\240MB (238472938 bytes)");
|
||||
|
||||
|
||||
check_string (g_format_size_full (0, G_FORMAT_SIZE_BITS), "0 bits");
|
||||
check_string (g_format_size_full (1, G_FORMAT_SIZE_BITS), "1 bit");
|
||||
check_string (g_format_size_full (2, G_FORMAT_SIZE_BITS), "2 bits");
|
||||
|
||||
check_string (g_format_size_full (2000ULL, G_FORMAT_SIZE_BITS), "2.0 kb");
|
||||
check_string (g_format_size_full (2000ULL * 1000, G_FORMAT_SIZE_BITS), "2.0 Mb");
|
||||
check_string (g_format_size_full (2000ULL * 1000 * 1000, G_FORMAT_SIZE_BITS), "2.0 Gb");
|
||||
check_string (g_format_size_full (2000ULL * 1000 * 1000 * 1000, G_FORMAT_SIZE_BITS), "2.0 Tb");
|
||||
check_string (g_format_size_full (2000ULL * 1000 * 1000 * 1000 * 1000, G_FORMAT_SIZE_BITS), "2.0 Pb");
|
||||
check_string (g_format_size_full (2000ULL * 1000 * 1000 * 1000 * 1000 * 1000, G_FORMAT_SIZE_BITS), "2.0 Eb");
|
||||
check_string (g_format_size_full (2000ULL, G_FORMAT_SIZE_BITS), "2.0\302\240kb");
|
||||
check_string (g_format_size_full (2000ULL * 1000, G_FORMAT_SIZE_BITS), "2.0\302\240Mb");
|
||||
check_string (g_format_size_full (2000ULL * 1000 * 1000, G_FORMAT_SIZE_BITS), "2.0\302\240Gb");
|
||||
check_string (g_format_size_full (2000ULL * 1000 * 1000 * 1000, G_FORMAT_SIZE_BITS), "2.0\302\240Tb");
|
||||
check_string (g_format_size_full (2000ULL * 1000 * 1000 * 1000 * 1000, G_FORMAT_SIZE_BITS), "2.0\302\240Pb");
|
||||
check_string (g_format_size_full (2000ULL * 1000 * 1000 * 1000 * 1000 * 1000, G_FORMAT_SIZE_BITS), "2.0\302\240Eb");
|
||||
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_BITS), "238.5 Mb");
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_LONG_FORMAT), "238.5 Mb (238472938 bits)");
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_BITS), "238.5\302\240Mb");
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_LONG_FORMAT), "238.5\302\240Mb (238472938 bits)");
|
||||
|
||||
|
||||
check_string (g_format_size_full (0, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "0 bits");
|
||||
check_string (g_format_size_full (1, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "1 bit");
|
||||
check_string (g_format_size_full (2, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "2 bits");
|
||||
|
||||
check_string (g_format_size_full (2048ULL, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "2.0 Kib");
|
||||
check_string (g_format_size_full (2048ULL * 1024, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "2.0 Mib");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "2.0 Gib");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "2.0 Tib");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024 * 1024, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "2.0 Pib");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024 * 1024 * 1024, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "2.0 Eib");
|
||||
check_string (g_format_size_full (2048ULL, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "2.0\302\240Kib");
|
||||
check_string (g_format_size_full (2048ULL * 1024, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "2.0\302\240Mib");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "2.0\302\240Gib");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "2.0\302\240Tib");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024 * 1024, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "2.0\302\240Pib");
|
||||
check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024 * 1024 * 1024, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "2.0\302\240Eib");
|
||||
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "227.4 Mib");
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS | G_FORMAT_SIZE_LONG_FORMAT), "227.4 Mib (238472938 bits)");
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS), "227.4\302\240Mib");
|
||||
check_string (g_format_size_full (238472938, G_FORMAT_SIZE_BITS | G_FORMAT_SIZE_IEC_UNITS | G_FORMAT_SIZE_LONG_FORMAT), "227.4\302\240Mib (238472938 bits)");
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user