| --- ./libgweather/weather-iwin.c.orig 2014-09-07 17:25:15.852668400 +0200 |
| +++ ./libgweather/weather-iwin.c 2014-09-07 17:26:07.678605100 +0200 |
| @@ -364,7 +364,14 @@ |
| gchar latstr[G_ASCII_DTOSTR_BUF_SIZE], lonstr[G_ASCII_DTOSTR_BUF_SIZE]; |
| |
| now = time (NULL); |
| +#ifndef G_OS_WIN32 |
| localtime_r (&now, &tm); |
| +#else |
| + GDate *gdate = g_date_new (); |
| + g_date_set_time_t (gdate, now); |
| + g_date_to_struct_tm (gdate, &tm); |
| + g_date_free (gdate); |
| +#endif |
| |
| g_ascii_dtostr (latstr, sizeof(latstr), RADIANS_TO_DEGREES (loc->latitude)); |
| g_ascii_dtostr (lonstr, sizeof(lonstr), RADIANS_TO_DEGREES (loc->longitude)); |
| --- ./libgweather/weather-metar.c.orig 2014-09-07 17:23:43.223452300 +0200 |
| +++ ./libgweather/weather-metar.c 2014-09-07 17:25:51.173668900 +0200 |
| @@ -47,7 +47,14 @@ |
| const time_t now = time (NULL); |
| struct tm tm; |
| |
| +#ifndef G_OS_WIN32 |
| localtime_r (&now, &tm); |
| +#else |
| + GDate *gdate = g_date_new (); |
| + g_date_set_time_t (gdate, now); |
| + g_date_to_struct_tm (gdate, &tm); |
| + g_date_free (gdate); |
| +#endif |
| |
| /* If last reading took place just before midnight UTC on the |
| * first, adjust the date downward to allow for the month |
| --- ./libgweather/weather-owm.c.orig 2014-03-08 19:38:42.000000000 +0100 |
| +++ ./libgweather/weather-owm.c 2014-09-07 17:58:20.405807600 +0200 |
| @@ -29,7 +29,6 @@ |
| #include <math.h> |
| #include <time.h> |
| #include <unistd.h> |
| -#include <langinfo.h> |
| |
| #include <libxml/parser.h> |
| #include <libxml/xpath.h> |
| @@ -38,6 +37,10 @@ |
| #define GWEATHER_I_KNOW_THIS_IS_UNSTABLE |
| #include "weather-priv.h" |
| |
| +#ifndef G_OS_WIN32 |
| +#include <langinfo.h> |
| +#endif |
| + |
| #define XC(t) ((const xmlChar *)(t)) |
| |
| /* Reference for symbols at http://bugs.openweathermap.org/projects/api/wiki/Weather_Condition_Codes */ |
| @@ -133,16 +136,39 @@ |
| GTimeZone *tz; |
| GDateTime *dt; |
| time_t rval; |
| - char *after; |
| - |
| - after = strptime ((const char*) str, "%Y-%m-%dT%T", &time); |
| - if (after == NULL) { |
| - g_warning ("Cannot parse date string \"%s\"", str); |
| - return 0; |
| - } |
| |
| - if (*after == 'Z') |
| - tzid = "UTC"; |
| +#ifndef G_OS_WIN32 |
| + char *after; |
| + after = strptime ((const char*) str, "%Y-%m-%dT%T", &time); |
| + if (after == NULL) { |
| + g_warning ("Cannot parse date string \"%s\"", str); |
| + return 0; |
| + } |
| + if (*after == 'Z') |
| + tzid = "UTC"; |
| +#else |
| + int year; |
| + int mon; |
| + int mday; |
| + int hour; |
| + int min; |
| + int sec; |
| + char *gctz; |
| + int parsed = scanf ((const char*) str, "%d-%d-%dT%d:%d:%d%s", |
| + &year, &mon, &mday, &hour, &min, &sec, &gctz); |
| + if (parsed != 7) { |
| + g_warning ("Cannot parse date string \"%s\"", str); |
| + return 0; |
| + } |
| + time.tm_year = year + 1900; |
| + time.tm_mon = mon + 1; |
| + time.tm_mday = mday; |
| + time.tm_hour = hour; |
| + time.tm_min = min; |
| + time.tm_sec = sec; |
| + if (*gctz == 'Z') |
| + tzid = "UTC"; |
| +#endif |
| |
| tz = g_time_zone_new (tzid); |
| dt = g_date_time_new (tz, |
| --- ./libgweather/weather-sun.c.orig 2014-09-07 17:53:39.134081200 +0200 |
| +++ ./libgweather/weather-sun.c 2014-09-07 17:54:30.044591900 +0200 |
| @@ -322,7 +322,14 @@ |
| _gweather_info_ensure_sun (info); |
| |
| /* Determine when the next local midnight occurs */ |
| +#ifndef G_OS_WIN32 |
| (void) localtime_r (&now, <m); |
| +#else |
| + GDate *gdate = g_date_new (); |
| + g_date_set_time_t (gdate, now); |
| + g_date_to_struct_tm (gdate, <m); |
| + g_date_free (gdate); |
| +#endif |
| ltm.tm_sec = 0; |
| ltm.tm_min = 0; |
| ltm.tm_hour = 0; |
| --- ./libgweather/weather-yrno.c.orig 2014-09-07 17:34:08.504436200 +0200 |
| +++ ./libgweather/weather-yrno.c 2014-09-07 17:58:24.358807100 +0200 |
| @@ -94,16 +94,39 @@ |
| GTimeZone *tz; |
| GDateTime *dt; |
| time_t rval; |
| - char *after; |
| |
| - after = strptime ((const char*) str, "%Y-%m-%dT%T", &time); |
| - if (after == NULL) { |
| - g_warning ("Cannot parse date string \"%s\"", str); |
| - return 0; |
| - } |
| - |
| - if (*after == 'Z') |
| - tzid = "UTC"; |
| +#ifndef G_OS_WIN32 |
| + char *after; |
| + after = strptime ((const char*) str, "%Y-%m-%dT%T", &time); |
| + if (after == NULL) { |
| + g_warning ("Cannot parse date string \"%s\"", str); |
| + return 0; |
| + } |
| + if (*after == 'Z') |
| + tzid = "UTC"; |
| +#else |
| + int year; |
| + int mon; |
| + int mday; |
| + int hour; |
| + int min; |
| + int sec; |
| + char *gctz; |
| + int parsed = scanf ((const char*) str, "%d-%d-%dT%d:%d:%d%s", |
| + &year, &mon, &mday, &hour, &min, &sec, &gctz); |
| + if (parsed != 7) { |
| + g_warning ("Cannot parse date string \"%s\"", str); |
| + return 0; |
| + } |
| + time.tm_year = year + 1900; |
| + time.tm_mon = mon + 1; |
| + time.tm_mday = mday; |
| + time.tm_hour = hour; |
| + time.tm_min = min; |
| + time.tm_sec = sec; |
| + if (*gctz == 'Z') |
| + tzid = "UTC"; |
| +#endif |
| |
| tz = g_time_zone_new (tzid); |
| dt = g_date_time_new (tz, |
| --- ./libgweather/gweather-weather.c.orig 2014-09-07 17:18:05.621641500 +0200 |
| +++ ./libgweather/gweather-weather.c 2014-09-07 17:27:17.789137400 +0200 |
| @@ -28,13 +28,16 @@ |
| #include <math.h> |
| #include <time.h> |
| #include <unistd.h> |
| -#include <langinfo.h> |
| #include <errno.h> |
| |
| #include <gtk/gtk.h> |
| #include <gdk-pixbuf/gdk-pixbuf.h> |
| #include <glib.h> |
| |
| +#ifndef G_OS_WIN32 |
| +#include <langinfo.h> |
| +#endif |
| + |
| #include "gweather-weather.h" |
| #include "gweather-private.h" |
| #include "gweather-enum-types.h" |