]> sigrok.org Git - libsigrok.git/commitdiff
strutil: Assume bool is true when no value is specified
authorGerhard Sittig <redacted>
Sun, 25 Jun 2017 09:28:29 +0000 (11:28 +0200)
committerGerhard Sittig <redacted>
Sun, 25 Jun 2017 18:42:21 +0000 (20:42 +0200)
Adjust the string to boolean conversion for an edge case. Accept empty
text (either NULL or empty strings) to mean true instead of false.

This behaviour is more useful from the user's point of view, when the
option's name alone will enable a feature, and an explicit "option=yes"
specification is not strictly necessary. All calling applications in
mainline already implemented this semantics.

src/strutil.c

index 72378d4a2942d5dd7f411e35d41ffb7a01b9a183..382708936244ba9a3f0b2aa0972c66fab12177c2 100644 (file)
@@ -555,8 +555,13 @@ SR_API uint64_t sr_parse_timestring(const char *timestring)
 /** @since 0.1.0 */
 SR_API gboolean sr_parse_boolstring(const char *boolstr)
 {
-       if (!boolstr)
-               return FALSE;
+       /*
+        * Complete absence of an input spec is assumed to mean TRUE,
+        * as in command line option strings like this:
+        *   ...:samplerate=100k:header:numchannels=4:...
+        */
+       if (!boolstr || !*boolstr)
+               return TRUE;
 
        if (!g_ascii_strncasecmp(boolstr, "true", 4) ||
            !g_ascii_strncasecmp(boolstr, "yes", 3) ||