Acked ----- Original Message ----- > From: "Pavel Grunt" <pgrunt@xxxxxxxxxx> > To: spice-devel@xxxxxxxxxxxxxxxxxxxxx > Sent: Tuesday, August 25, 2015 3:32:46 PM > Subject: [PATCH spice-gtk v6 1/2] glib-compat: Add g_format_size > > g_format_size_for_display is deprecated since glib 2.30. See glib commit > afd1e3697065c1bd23fe9a1cacf43d8744d0bc9b > > g_format_size will be used in the following commit > --- > src/glib-compat.c | 64 > +++++++++++++++++++++++++++++++++++++++++++++++++++++++ > src/glib-compat.h | 1 + > 2 files changed, 65 insertions(+) > > diff --git a/src/glib-compat.c b/src/glib-compat.c > index 49edf73..41a7f52 100644 > --- a/src/glib-compat.c > +++ b/src/glib-compat.c > @@ -19,11 +19,75 @@ > #include "config.h" > > #include <string.h> > +#include <glib/gi18n.h> > > #include "glib-compat.h" > > #if !GLIB_CHECK_VERSION(2,30,0) > G_DEFINE_BOXED_TYPE (GMainContext, spice_main_context, g_main_context_ref, > g_main_context_unref) > + > +#define KILOBYTE_FACTOR (G_GOFFSET_CONSTANT (1000)) > +#define MEGABYTE_FACTOR (KILOBYTE_FACTOR * KILOBYTE_FACTOR) > +#define GIGABYTE_FACTOR (MEGABYTE_FACTOR * KILOBYTE_FACTOR) > +#define TERABYTE_FACTOR (GIGABYTE_FACTOR * KILOBYTE_FACTOR) > +#define PETABYTE_FACTOR (TERABYTE_FACTOR * KILOBYTE_FACTOR) > +#define EXABYTE_FACTOR (PETABYTE_FACTOR * KILOBYTE_FACTOR) > + > +/** > + * g_format_size: > + * @size: a size in bytes > + * > + * Formats a size (for example the size of a file) into a human readable > + * string. Sizes are rounded to the nearest size prefix (kB, MB, GB) > + * and are displayed rounded to the nearest tenth. E.g. the file size > + * 3292528 bytes will be converted into the string "3.2 MB". > + * > + * The prefix units base is 1000 (i.e. 1 kB is 1000 bytes). > + * > + * This string should be freed with g_free() when not needed any longer. > + * > + * See g_format_size_full() for more options about how the size might be > + * formatted. > + * > + * Returns: a newly-allocated formatted string containing a human readable > + * file size > + * > + * Since: 2.30 > + */ > +gchar * > +g_format_size (guint64 size) > +{ > + GString *string; > + > + string = g_string_new (NULL); > + > + if (size < KILOBYTE_FACTOR) > + { > + g_string_printf (string, > + g_dngettext(GETTEXT_PACKAGE, "%u byte", "%u bytes", > (guint) size), > + (guint) size); > + } > + > + else if (size < MEGABYTE_FACTOR) > + g_string_printf (string, _("%.1f kB"), (gdouble) size / (gdouble) > KILOBYTE_FACTOR); > + > + else if (size < GIGABYTE_FACTOR) > + g_string_printf (string, _("%.1f MB"), (gdouble) size / (gdouble) > MEGABYTE_FACTOR); > + > + else if (size < TERABYTE_FACTOR) > + g_string_printf (string, _("%.1f GB"), (gdouble) size / (gdouble) > GIGABYTE_FACTOR); > + else if (size < PETABYTE_FACTOR) > + g_string_printf (string, _("%.1f TB"), (gdouble) size / (gdouble) > TERABYTE_FACTOR); > + > + else if (size < EXABYTE_FACTOR) > + g_string_printf (string, _("%.1f PB"), (gdouble) size / (gdouble) > PETABYTE_FACTOR); > + > + else > + g_string_printf (string, _("%.1f EB"), (gdouble) size / (gdouble) > EXABYTE_FACTOR); > + > + return g_string_free (string, FALSE); > +} > + > #endif > > > diff --git a/src/glib-compat.h b/src/glib-compat.h > index 5491fe4..512ea55 100644 > --- a/src/glib-compat.h > +++ b/src/glib-compat.h > @@ -28,6 +28,7 @@ > #if !GLIB_CHECK_VERSION(2,30,0) > #define G_TYPE_MAIN_CONTEXT (spice_main_context_get_type ()) > GType spice_main_context_get_type (void) G_GNUC_CONST; > +gchar *g_format_size (guint64 size); > #endif > > #if !GLIB_CHECK_VERSION(2,32,0) > -- > 2.5.0 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/spice-devel > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel