]> sigrok.org Git - libsigrok.git/commitdiff
strutil: Fix unit test failure (bug #1093).
authorUwe Hermann <redacted>
Tue, 17 Jul 2018 17:06:05 +0000 (19:06 +0200)
committerUwe Hermann <redacted>
Tue, 17 Jul 2018 17:06:05 +0000 (19:06 +0200)
Patch by Wojciech Lazarski, thanks a lot!

src/strutil.c

index 5f48e87bebc02cd2f0eaca8c516aba7b6349e5a1..1f558f15ffe4c38f81818a5ef5bb1509403b71b9 100644 (file)
@@ -621,12 +621,15 @@ SR_API int sr_parse_rational(const char *str, struct sr_rational *ret)
 
        if (str == endptr && (str[0] == '-' || str[0] == '+') && str[1] == '.')
                endptr += 1;
+       else if ((str == endptr && str[0] == '.' ))
+               ;
        else if (errno)
                return SR_ERR;
 
        if (integral < 0 || str[0] == '-')
                is_negative = true;
 
+       errno = 0;
        if (*endptr == '.') {
                const char* start = endptr + 1;
                fractional = g_ascii_strtoll(start, &endptr, 10);
@@ -635,6 +638,7 @@ SR_API int sr_parse_rational(const char *str, struct sr_rational *ret)
                fractional_len = endptr - start;
        }
 
+       errno = 0;
        if ((*endptr == 'E') || (*endptr == 'e')) {
                exponent = g_ascii_strtoll(endptr + 1, &endptr, 10);
                if (errno)