summaryrefslogtreecommitdiff
path: root/pseudonmea.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2019-03-13 18:55:16 -0700
committerGary E. Miller <gem@rellim.com>2019-03-13 18:55:16 -0700
commit3bab25ef5b820217590f4a3cf2ec5554848465f5 (patch)
treec4dc8db820d16dbc57f0207878d09db9ab0a7369 /pseudonmea.c
parent41757d5898172baaa43e2d99f854d90633db73ad (diff)
downloadgpsd-3bab25ef5b820217590f4a3cf2ec5554848465f5.tar.gz
pseudonmea: DO not ouput $GPZDA with no valid date.
No regressions change.d
Diffstat (limited to 'pseudonmea.c')
-rw-r--r--pseudonmea.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/pseudonmea.c b/pseudonmea.c
index f7e14e9b..6c8c6a30 100644
--- a/pseudonmea.c
+++ b/pseudonmea.c
@@ -267,6 +267,7 @@ static void gpsd_binary_quality_dump(struct gps_device_t *session,
}
}
+/* Dump $GPZDA if we have time and a fix */
static void gpsd_binary_time_dump(struct gps_device_t *session,
char bufp[], size_t len)
{
@@ -274,7 +275,9 @@ static void gpsd_binary_time_dump(struct gps_device_t *session,
double integral;
time_t integral_time;
- if (session->newdata.mode > MODE_NO_FIX) {
+ if (MODE_NO_FIX < session->newdata.mode &&
+ 0 != isfinite(session->gpsdata.fix.time)) {
+
double fractional = modf(session->newdata.time, &integral);
integral_time = (time_t) integral;
(void)gmtime_r(&integral_time, &tm);