diff options
-rw-r--r-- | pseudonmea.c | 5 |
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); |