X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-cli.git;a=blobdiff_plain;f=parsers.c;h=65a265389f2d0dba79772b8e3cc3e19810bf12cf;hp=659bbad88dfca9bf8f4248309829126b4fbb1de3;hb=63bb454cc1cec4a3cfdb7bcf5cb7ea37ea50e93a;hpb=60ea8937c54f5a8a36b4e4f91de03ff545e2bcd9 diff --git a/parsers.c b/parsers.c index 659bbad..65a2653 100644 --- a/parsers.c +++ b/parsers.c @@ -96,7 +96,7 @@ char **parse_probestring(int max_probes, const char *probestring) return probelist; } -GHashTable *parse_generic_arg(const char *arg) +GHashTable *parse_generic_arg(const char *arg, gboolean sep_first) { GHashTable *hash; int i; @@ -105,10 +105,14 @@ GHashTable *parse_generic_arg(const char *arg) if (!arg || !arg[0]) return NULL; - hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); + i = 0; + hash = g_hash_table_new_full(g_str_hash, g_str_equal, + g_free, g_free); elements = g_strsplit(arg, ":", 0); - g_hash_table_insert(hash, g_strdup("sigrok_key"), g_strdup(elements[0])); - for (i = 1; elements[i]; i++) { + if (sep_first) + g_hash_table_insert(hash, g_strdup("sigrok_key"), + g_strdup(elements[i++])); + for (; elements[i]; i++) { e = strchr(elements[i], '='); if (!e) g_hash_table_insert(hash, g_strdup(elements[i]), NULL);