193 lines
5.0 KiB
Diff
193 lines
5.0 KiB
Diff
--- ./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"
|