[Xfce4-commits] [panel-plugins/xfce4-weather-plugin] 01/01: Remove negative sign when temperature is rounded to 0 °F (bug #11604)
noreply at xfce.org
noreply at xfce.org
Mon Mar 9 17:28:04 CET 2015
This is an automated email from the git hooks/post-receive script.
hjudt pushed a commit to branch master
in repository panel-plugins/xfce4-weather-plugin.
commit f872ecb906431f3ebd250a59248d536fccfca243
Author: CamelBackNotation <JoshuaHurt at utexas.edu>
Date: Fri Mar 6 15:55:24 2015 -0600
Remove negative sign when temperature is rounded to 0 °F (bug #11604)
---
panel-plugin/weather-data.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/panel-plugin/weather-data.c b/panel-plugin/weather-data.c
index 3728199..d54e481 100644
--- a/panel-plugin/weather-data.c
+++ b/panel-plugin/weather-data.c
@@ -44,6 +44,15 @@
#define ROUND_TO_INT(default_format) (round ? "%.0f" : default_format)
+/* Converts temperatures in Celcius to Fahrenheit while preventing
+ * negative values rounded to zero from being displayed as "-0 °F". */
+#define CALC_FAHRENHEIT(round, temperature) \
+do { \
+ temperature = temperature * 9.0 / 5.0 + 32; \
+ if (round && temperature > -0.5 && temperature < 0) \
+ temperature = 0; \
+} while (0)
+
#define LOCALE_DOUBLE(value, format) \
(value \
? g_strdup_printf(format, g_ascii_strtod(value, NULL)) \
@@ -344,7 +353,7 @@ get_data(const xml_time *timeslice,
case TEMPERATURE: /* source is in °C */
val = string_to_double(loc->temperature_value, 0);
if (units->temperature == FAHRENHEIT)
- val = val * 9.0 / 5.0 + 32.0;
+ CALC_FAHRENHEIT(round, val);
return g_strdup_printf(ROUND_TO_INT("%.1f"), val);
case PRESSURE: /* source is in hectopascals */
@@ -398,14 +407,14 @@ get_data(const xml_time *timeslice,
if (val == INVALID_VALUE)
return g_strdup("");
if (units->temperature == FAHRENHEIT)
- val = val * 9.0 / 5.0 + 32.0;
+ CALC_FAHRENHEIT(round, val);
return g_strdup_printf(ROUND_TO_INT("%.1f"), val);
case APPARENT_TEMPERATURE:
val = calc_apparent_temperature(loc, units->apparent_temperature,
night_time);
if (units->temperature == FAHRENHEIT)
- val = val * 9.0 / 5.0 + 32.0;
+ CALC_FAHRENHEIT(round, val);
return g_strdup_printf(ROUND_TO_INT("%.1f"), val);
case CLOUDS_LOW:
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list