diff options
author | TingPing <tingping@tingping.se> | 2014-05-03 23:57:45 -0400 |
---|---|---|
committer | TingPing <tingping@tingping.se> | 2014-05-03 23:57:45 -0400 |
commit | 9599c29c465cf8b0ac64969152e645ed09fef1d0 (patch) | |
tree | 29d0f52acb17312bb64dfc3a2f75e4ef2d2ce4d6 | |
parent | fe71af15a715ca914fe6cd8ea174c2c948476a68 (diff) |
Use filesize format based on OS
Adds gui_filesize_iec option on Unix Closes #966
-rw-r--r-- | src/common/cfgfiles.c | 1 | ||||
-rw-r--r-- | src/common/hexchat.h | 1 | ||||
-rw-r--r-- | src/fe-gtk/dccgui.c | 15 |
3 files changed, 14 insertions, 3 deletions
diff --git a/src/common/cfgfiles.c b/src/common/cfgfiles.c index 3e14d748..1207ff69 100644 --- a/src/common/cfgfiles.c +++ b/src/common/cfgfiles.c @@ -416,6 +416,7 @@ const struct prefs vars[] = {"gui_dialog_left", P_OFFINT (hex_gui_dialog_left), TYPE_INT}, {"gui_dialog_top", P_OFFINT (hex_gui_dialog_top), TYPE_INT}, {"gui_dialog_width", P_OFFINT (hex_gui_dialog_width), TYPE_INT}, + {"gui_filesize_iec", P_OFFINT (hex_gui_filesize_iec), TYPE_BOOL}, {"gui_focus_omitalerts", P_OFFINT (hex_gui_focus_omitalerts), TYPE_BOOL}, {"gui_hide_menu", P_OFFINT (hex_gui_hide_menu), TYPE_BOOL}, {"gui_input_attr", P_OFFINT (hex_gui_input_attr), TYPE_BOOL}, diff --git a/src/common/hexchat.h b/src/common/hexchat.h index 5d96fd4b..1c48fe71 100644 --- a/src/common/hexchat.h +++ b/src/common/hexchat.h @@ -156,6 +156,7 @@ struct hexchatprefs unsigned int hex_gui_autoopen_recv; unsigned int hex_gui_autoopen_send; unsigned int hex_gui_compact; + unsigned int hex_gui_filesize_iec; unsigned int hex_gui_focus_omitalerts; unsigned int hex_gui_hide_menu; unsigned int hex_gui_input_attr; diff --git a/src/fe-gtk/dccgui.c b/src/fe-gtk/dccgui.c index 6d6a033d..10ec8388 100644 --- a/src/fe-gtk/dccgui.c +++ b/src/fe-gtk/dccgui.c @@ -107,11 +107,20 @@ static short view_mode; /* 1=download 2=upload 3=both */ static void proper_unit (DCC_SIZE size, char *buf, int buf_len) { - gchar *formated_str = g_format_size ((guint64)size); + gchar *formatted_str; + GFormatSizeFlags format_flags = G_FORMAT_SIZE_DEFAULT; - g_strlcpy (buf, formated_str, buf_len); +#ifndef __APPLE__ /* OS X uses SI */ +#ifndef WIN32 /* Windows uses IEC size (with SI format) */ + if (prefs.hex_gui_filesize_iec) /* Linux can't decide... */ +#endif + format_flags = G_FORMAT_SIZE_IEC_UNITS; +#endif + + formatted_str = g_format_size_full ((guint64)size, format_flags); + g_strlcpy (buf, formatted_str, buf_len); - g_free (formated_str); + g_free (formatted_str); } static void |