summaryrefslogtreecommitdiff
path: root/community-staging/gpsdrive/gpsd-2.96.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community-staging/gpsdrive/gpsd-2.96.patch')
-rw-r--r--community-staging/gpsdrive/gpsd-2.96.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/community-staging/gpsdrive/gpsd-2.96.patch b/community-staging/gpsdrive/gpsd-2.96.patch
new file mode 100644
index 000000000..bc6c7475f
--- /dev/null
+++ b/community-staging/gpsdrive/gpsd-2.96.patch
@@ -0,0 +1,44 @@
+diff -wbBur gpsdrive-2.11/src/gps_handler.c gpsdrive-2.11.my/src/gps_handler.c
+--- gpsdrive-2.11/src/gps_handler.c 2010-06-24 19:53:32.000000000 +0000
++++ gpsdrive-2.11.my/src/gps_handler.c 2011-04-18 13:21:33.000000000 +0000
+@@ -264,7 +264,8 @@
+ #define GPS_TIMER 500
+
+ static gint gps_timeout_source = 0;
+-static struct gps_data_t *gpsdata;
++static struct gps_data_t __gd;
++static struct gps_data_t *gpsdata = &__gd;
+
+ /* SYMBOLS USED IN LIBGPS:
+ *
+@@ -410,9 +411,10 @@
+ */
+ gps_query (gpsdata, "oys\n");
+ #else
+- if (gps_waiting(gpsdata))
++ if (gps_waiting(gpsdata, 1000000))
+ {
+- gps_poll (gpsdata);
++ gps_read (gpsdata);
++ gps_hook_cb(gpsdata, NULL);
+ }
+ #endif
+
+@@ -447,7 +449,7 @@
+ }
+
+ /* try to open connection */
+- gpsdata = gps_open (local_config.gpsd_server, local_config.gpsd_port);
++ gpsdata = gps_open (local_config.gpsd_server, local_config.gpsd_port, gpsdata) ? NULL : &__gd;
+ if (!gpsdata)
+ {
+ g_print ("Can't connect to gps daemon on %s:%s, disabling GPS support!\n",
+@@ -466,7 +468,7 @@
+ gps_sats = g_new (gps_satellite_struct, MAXCHANNELS);
+
+ /* set hook function to handle gps data */
+- gps_set_raw_hook (gpsdata, (gpointer) gps_hook_cb);
++// gps_set_raw_hook (gpsdata, (gpointer) gps_hook_cb);
+
+ #ifndef LIBGPS_OLD
+ /* enable watch mode to get data stream from gpsd */