]> sigrok.org Git - libsigrok.git/commitdiff
strutil: accept 0b prefix when base is 2 (which is non-zero)
authorGerhard Sittig <redacted>
Sun, 25 Jun 2023 20:47:47 +0000 (22:47 +0200)
committerGerhard Sittig <redacted>
Wed, 12 Jul 2023 18:39:54 +0000 (20:39 +0200)
The sr_atoul_base() conversion routine only accepted the 0b binary
prefix when base was 0. Extend this to also accept the 0b prefix when
the caller specified base is 2. This unbreaks a valid use case.

src/strutil.c

index c389a524d26598aa20a4274969cbd1bf9c76ae4b..be07662f3ec03c95eb8e0afc8b0695ba8afcc82e 100644 (file)
@@ -174,7 +174,7 @@ SR_PRIV int sr_atoul_base(const char *str, unsigned long *ret, char **end, int b
        /* Add "0b" prefix support which strtol(3) may be missing. */
        while (str && isspace(*str))
                str++;
-       if (!base && strncmp(str, "0b", strlen("0b")) == 0) {
+       if ((!base || base == 2) && strncmp(str, "0b", strlen("0b")) == 0) {
                str += strlen("0b");
                base = 2;
        }