X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=parsers.c;h=59a7a91830220f573d7dd9abb85789fc0b038884;hb=af9fa8c5ea9925cb8fe076ae7d4e996836a6db13;hp=d92218f8664ed5a8858e32a6b631b8d4c68633aa;hpb=c9c30f53c4c639d73cadc7c58c28a69090b41261;p=sigrok-cli.git diff --git a/parsers.c b/parsers.c index d92218f..59a7a91 100644 --- a/parsers.c +++ b/parsers.c @@ -139,8 +139,7 @@ range_fail: } if (names[1]) { /* Rename channel. */ - g_free(ch->name); - ch->name = g_strdup(names[1]); + sr_dev_channel_name_set(ch, names[1]); } channellist = g_slist_append(channellist, ch); @@ -365,6 +364,8 @@ GHashTable *parse_generic_arg(const char *arg, i++; } for (; elements[i]; i++) { + if (!elements[i][0]) + continue; split_key_value(elements[i], &k, &v); k = g_strdup(k); v = v ? g_strdup(v) : NULL; @@ -444,11 +445,11 @@ GHashTable *generic_arg_to_opt(const struct sr_option **opts, GHashTable *genarg g_hash_table_insert(hash, g_strdup(opts[i]->id), g_variant_ref_sink(gvar)); } else if (g_variant_is_of_type(opts[i]->def, G_VARIANT_TYPE_INT32)) { - gvar = g_variant_new_int32(strtoul(s, NULL, 10)); + gvar = g_variant_new_int32(strtol(s, NULL, 10)); g_hash_table_insert(hash, g_strdup(opts[i]->id), g_variant_ref_sink(gvar)); } else if (g_variant_is_of_type(opts[i]->def, G_VARIANT_TYPE_UINT64)) { - gvar = g_variant_new_uint64(strtoul(s, NULL, 10)); + gvar = g_variant_new_uint64(strtoull(s, NULL, 10)); g_hash_table_insert(hash, g_strdup(opts[i]->id), g_variant_ref_sink(gvar)); } else if (g_variant_is_of_type(opts[i]->def, G_VARIANT_TYPE_DOUBLE)) {