summaryrefslogtreecommitdiff
path: root/gpsutils.c
Commit message (Collapse)AuthorAgeFilesLines
* LICENSE: Update licenses for consistency. No functional changes.Gary E. Miller2018-11-191-1/+1
|
* test_mktime: Add test for mkgmtime()Gary E. Miller2018-11-081-1/+5
| | | | Better comments in gpsutils.c
* gpsutils: fix rounding error in unix_to_iso8601(), add/fix tests.Gary E. Miller2018-11-081-4/+8
| | | | | | | | | | 1541766896.999512 became "2018-11-09T12:34:56.000Z". Which sould be :57. The fractional seconds got rounded up, but the seconds did not get incremented to match. Added regression tests for unix_to_iso8601(). Reported by Peter Liu <greendice@me.com>.
* ATT: centralize clearing of the attitude data.Gary E. Miller2018-09-111-0/+22
| | | | | This showed up a bug where rtcm3_unpack() was not clearing its rtcm3 data, which is a union with the attitude data.
* Remove some remnant splint annotations.Eric S. Raymond2018-08-081-1/+1
|
* gpsutils.c: isnan() -> isfinite()Gary E. Miller2018-07-141-2/+3
| | | | Thanks to Virgin Orbit for their support on this patch.
* $GPVTG Added parsing, storage, output of magnetic courseDaniel_M_Williams2018-06-121-1/+4
| | | | Signed-off-by: Gary E. Miller <gem@rellim.com>
* SPDXify the licerse references.Eric S. Raymond2018-03-081-1/+1
|
* ECEF: remove unused and unneeded ecef.valid.Gary E. Miller2018-02-121-2/+0
| | | | Gotta check each value for isfinite() anyway.
* Add ECEF support to u-blocx driver, data comes out in json.Gary E. Miller2018-02-081-0/+24
| | | | More work to do so cgps, xgps, etc. see the new data.
* Initial creation of os_compat.h.Fred Wright2017-01-221-0/+1
| | | | | | | | | | | | | | | | | This creates a header for os_compat.c, and moves the related prototypes into it from gpsd_config.h (as created by SConstruct), after adding references to it to gpsd.h (via gpsd.h-tail) and a few other sources that need it but don't include gpsd.h. It also removes includes of <time.h> in the places where they were only needed for the code now removed from gpsd_config.h. TESTED: Ran "scons build-all check" on OSX 10.9 (with strlcat/strlcpy but no clock_gettime), OSX 10.12 (with strlcat/strlcpy and clock_gettime), and Ubuntu 14 (with clock_gettime but no strlcat/strlcpy). Also verified that fallback versions were not being included where unnecessary.
* Add Windows versions of time related functions.Rob Norris2016-03-221-3/+92
|
* Write scan-build suppressions to it runs clean.Eric S. Raymond2015-03-301-0/+2
| | | | | | Promote scan-build to be onere of the stock pre-release checks. Fix one minor cppcheck nit.
* Retire splint from our set of static analyzers.Eric S. Raymond2015-03-301-26/+11
| | | | | | | | | | | | | | | | | | | The proximate cause was that we've been seing emission of error messages that were randomly and disturbingly variable across different environments - notably Raspbian and Gentoo splint gave nontrivially different results than Ubuntu 14.10 splint. And this was *not* due to Ubuntu patches! A pristine splint built from the 3.1.2 tarball on Ubuntu didn't match the Raspbian and Gentoo results either. But this has been coming for a while. Easy access to more modern static analyzers such as coverity, scan-build and cppcheck has been decreasing the utility of splint, which is unmaintained and somewhat buggy and not easy to use. Only file not cleaned is ppsthread.c, because Gary has been working on it during this cleanup. All regression tests pass. PPS observed live on GR601-W.
* Clean up most spint errors. All regression tests pass.Eric S. Raymond2015-03-281-4/+13
|
* Yet more: Line expects to suppress X error, found 0 errorsGary E. Miller2015-03-251-4/+4
|
* Break timespec_str out of gpsutils.c.Eric S. Raymond2015-03-081-29/+1
| | | | | | It's not used on the client side, and it's needed separately for ntplib. All regression tesrs pass. PPS is live.
* Implement POSIX clock_gettime(3) for systems that lack it (like Mac OS X).Eric S. Raymond2015-03-011-6/+0
| | | | | | | On Mac OS X it will get proper nanosecond precision; elsewhere, only microseconds. Hides the conformance failure from the rest of the code. All regression tests pass.
* Remove unused and incorrect retval from timespec_strZbigniew Chyla2015-02-151-6/+2
| | | | | | | All callers ignore value returned by timespec_str. Additionally, the function returns simply the result of snprintf(), which is not necessarily the number of chars written to the buffer (if the buffer provided by the caller was too small).
* timespec_str: add "const" to input argumentZbigniew Chyla2015-02-151-1/+1
|
* Document the output of timespec_str() betterGary E. Miller2015-02-121-0/+12
| | | | | It can be as short as 12 chars: "-0.123456789" Or as long as 21 chars: "-2147483647.123456789"
* splint cleanup. All regressiion tests pass.Eric S. Raymond2015-02-091-1/+3
|
* Add function timespec_str(), and use it.Gary E. Miller2015-02-051-0/+19
| | | | | Converting a timespec to a printable string is odd, so placed in a new function for ease of use.
* Comment on loss of precision in timestamp().Gary E. Miller2015-02-021-0/+2
| | | | timestamp() should not be used where nanoSec count.
* Revert to using internal mkgmtime() as in 3.11.Eric S. Raymond2015-01-231-8/+7
| | | | | | The experiments since then have failed. All regression tests pass.
* Easy splint cleanups. All regression tests pass.Eric S. Raymond2015-01-211-1/+1
|
* Revert to using timegm() following Hal Murray's report of Fedora flakiness.Eric S. Raymond2015-01-141-3/+6
| | | | All regression tests pass.
* Fix the build in some unusual cases. All regression tests pass.Eric S. Raymond2015-01-131-0/+5
|
* Fixup iso8601_to_unix uninitialized memory bugJon Schlueter2015-01-071-0/+1
| | | | | | | | Initialize struct tm before passing it to strptime The issue is that mktime uses tm_isdst but some versions of strptime don't actually set tm_isdst so you get an uninitialized memory behavior at that point
* Better way to avoid glibc dependency.Eric S. Raymond2014-09-291-0/+30
| | | | | | | Returns us to something amost identical to the original code. Sigh. Timezones are a swamp. All regression tests pass.
* GNU libc timegm() turns out to be buggy when DST is on (glibc-2.19).Eric S. Raymond2014-09-281-1/+1
| | | | | | Fortunately, there's a much simpler way to do the computation correctly. All regression tests pass,
* Remove some custom code, at the cost of introducing a glibc depenency.Eric S. Raymond2014-09-251-29/+1
| | | | Dependency soon to be fixed. All regression tests pass.
* Silence compiler warnings about array subscripts of type 'char'Matt2014-09-101-2/+2
| | | | | | | | | | | | | | | | | | | | Cygwin GCC complains about code like isprint(c), where c is of type char. The isX() and toX() functions/macros (ISO C allows either) all accept an int, whose value should be either that of an unsigned char, or the special value EOF (== -1). So cast to unsigned char each argument to isprint, tolower, etc. Silences several warnings of the form: gpsutils.c: In function 'safe_atof': gpsutils.c:90:5: warning: array subscript has type 'char' [-Wchar-subscripts] while (isspace(*p)) { ^ gpsutils.c:188:2: warning: array subscript has type 'char' [-Wchar-subscripts] while (isdigit(*p)) { ^
* Code is fully cppcheck, splint, and Coverity clean.Eric S. Raymond2013-11-061-2/+3
| | | | All regression tests pass. PPS is live.
* Nuke trailing whitespace in C source.Eric S. Raymond2012-09-071-2/+2
|
* fix building with clock_gettime and newer glibcMike Frysinger2012-05-211-2/+4
| | | | | | | | | | | | | | | | | Building with recent glibc versions fails in gpsutils.c due to missing definitions related to clock_gettime. This is because we define the _XOPEN_SOURCE macro, but not to a new enough value. So set it to a recent spec value that satisfies both strptime and clock_gettime. Example build failure with glibc-2.15: gpsutils.c: In function 'timestamp': gpsutils.c:299:22: error: storage size of 'ts' isn't known gpsutils.c:300:14: warning: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration] gpsutils.c:300:34: error: 'CLOCK_REALTIME' undeclared (first use in this function) gpsutils.c:300:34: note: each undeclared identifier is reported only once for each function it appears in Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
* Comment out dead code. All regression tests pass.Eric S. Raymond2012-05-171-1/+1
|
* The strptime prototype is not provided unless explicitly requested.Gary E. Miller2012-04-061-0/+5
| | | | | | So add the define that POSIX says to to avoid. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Used clock_gettime() instead of gettimeofday() if possible.Michael Tatarinov2011-10-201-3/+9
| | | | Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
* Tweak for time.Michael Tatarinov2011-10-201-9/+0
| | | | | | | | | 1. Tag "week" must be unsigned integer. gpsprof -f instrumented works again. 2. Removed tag "uxtime" duplication "time". 3. Used a more precise timestamp. Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
* Break out prototypes for client library export methgods into a new heasder.Eric S. Raymond2011-09-281-0/+1
| | | | All regression tests pass. All three exports work in gpxlogger.
* Cycle-start detection by timing works on a SiRF at 9600bps.Eric S. Raymond2011-09-211-2/+2
| | | | All regression tests pass.
* splint cleanup.Eric S. Raymond2011-09-211-2/+2
|
* Remove the old latency-profiling machinery.Eric S. Raymond2011-09-201-0/+9
| | | | | | It hasn't actually worked since we switched protocols to JSON. This diff puts the framework in place for new machinery using timing attributes in the TPV sentence.
* Fix some compiler warnings.Eric S. Raymond2011-09-151-0/+1
|
* Typo fix.Eric S. Raymond2011-09-071-1/+1
|
* splint/pychecker cleanup of safe_atof().Eric S. Raymond2011-08-271-1/+3
|
* Avoid locale problems in the NMEA driver, too.Eric S. Raymond2011-08-271-0/+205
|
* Now that gpsd.h is safe to include in libgps, revert an earlier change.Eric S. Raymond2011-08-251-1/+1
|
* Remove an unneeded gpsd.h include.Eric S. Raymond2011-08-251-1/+1
|