]> sigrok.org Git - libsigrok.git/commitdiff
strutil: Fix sr_period_string output
authorStefan Brüns <redacted>
Sat, 14 Jan 2017 19:48:08 +0000 (20:48 +0100)
committerStefan Brüns <redacted>
Fri, 20 Jan 2017 18:48:39 +0000 (19:48 +0100)
The output was wrong for all frequencies but 1 Hz, 1 kHz, 1 MHz and 1 GHz.
With this changes, the output may still be off due to rounding, but will
be correct as to the shown accuracy.

src/strutil.c

index fc6c7580553555a8b76c7e1126e719ea38aa4220..4b5b9ec7c2ebbecc8ba58d6166f8f074ccae16a0 100644 (file)
@@ -369,13 +369,13 @@ SR_API char *sr_period_string(uint64_t frequency)
        o = g_malloc0(30 + 1);
 
        if (frequency >= SR_GHZ(1))
-               r = snprintf(o, 30, "%" PRIu64 " ns", frequency / 1000000000);
+               r = snprintf(o, 30, "%lld ps", 1000000000000ull / frequency);
        else if (frequency >= SR_MHZ(1))
-               r = snprintf(o, 30, "%" PRIu64 " us", frequency / 1000000);
+               r = snprintf(o, 30, "%lld ns", 1000000000ull / frequency);
        else if (frequency >= SR_KHZ(1))
-               r = snprintf(o, 30, "%" PRIu64 " ms", frequency / 1000);
+               r = snprintf(o, 30, "%lld us", 1000000ull / frequency);
        else
-               r = snprintf(o, 30, "%" PRIu64 " s", frequency);
+               r = snprintf(o, 30, "%lld ms", 1000ull / frequency);
 
        if (r < 0) {
                /* Something went wrong... */