aboutsummaryrefslogtreecommitdiff
path: root/src/service.c
diff options
context:
space:
mode:
authorCharles Kerr <charles.kerr@canonical.com>2014-03-13 09:05:34 -0500
committerCharles Kerr <charles.kerr@canonical.com>2014-03-13 09:05:34 -0500
commit9936e22d5e70cd10988f328e8d86b1e5bc93ede9 (patch)
tree036da61a7b7bac5cda12954725b3a27b513c6025 /src/service.c
parent065169e1bb80fa1b7b0bcc1059c68d2ba934116b (diff)
downloadayatana-indicator-power-9936e22d5e70cd10988f328e8d86b1e5bc93ede9.tar.gz
ayatana-indicator-power-9936e22d5e70cd10988f328e8d86b1e5bc93ede9.tar.bz2
ayatana-indicator-power-9936e22d5e70cd10988f328e8d86b1e5bc93ede9.zip
in the new indicator_power_device_get_*() functions, use heap-allocated strings rather than relying on g_snprintf().
Diffstat (limited to 'src/service.c')
-rw-r--r--src/service.c43
1 files changed, 25 insertions, 18 deletions
diff --git a/src/service.c b/src/service.c
index 248f953..405ad96 100644
--- a/src/service.c
+++ b/src/service.c
@@ -323,26 +323,32 @@ create_header_state (IndicatorPowerService * self)
if (p->primary_device != NULL)
{
- char buf[128];
+ char * title;
GIcon * icon;
const gboolean want_time = g_settings_get_boolean (p->settings, SETTINGS_SHOW_TIME_S);
const gboolean want_percent = g_settings_get_boolean (p->settings, SETTINGS_SHOW_PERCENTAGE_S);
- indicator_power_device_get_readable_title (p->primary_device,
- buf, sizeof(buf),
- want_time,
- want_percent);
- if (*buf)
- g_variant_builder_add (&b, "{sv}", "label", g_variant_new_string (buf));
-
-
- indicator_power_device_get_accessible_title (p->primary_device,
- buf, sizeof(buf),
- want_time,
- want_percent);
- if (*buf)
- g_variant_builder_add (&b, "{sv}", "accessible-desc", g_variant_new_string (buf));
+ title = indicator_power_device_get_readable_title (p->primary_device,
+ want_time,
+ want_percent);
+ if (title)
+ {
+ if (*title)
+ g_variant_builder_add (&b, "{sv}", "label", g_variant_new_take_string (title));
+ else
+ g_free (title);
+ }
+ title = indicator_power_device_get_accessible_title (p->primary_device,
+ want_time,
+ want_percent);
+ if (title)
+ {
+ if (*title)
+ g_variant_builder_add (&b, "{sv}", "accessible-desc", g_variant_new_take_string (title));
+ else
+ g_free (title);
+ }
if ((icon = indicator_power_device_get_gicon (p->primary_device)))
{
@@ -375,12 +381,13 @@ append_device_to_menu (GMenu * menu, const IndicatorPowerDevice * device)
if (kind != UP_DEVICE_KIND_LINE_POWER)
{
- char buf[128];
+ char * label;
GMenuItem * item;
GIcon * icon;
- indicator_power_device_get_readable_text (device, buf, sizeof(buf));
- item = g_menu_item_new (buf, "indicator.activate-statistics");
+ label = indicator_power_device_get_readable_text (device);
+ item = g_menu_item_new (label, "indicator.activate-statistics");
+ g_free (label);
if ((icon = indicator_power_device_get_gicon (device)))
{