]> sigrok.org Git - sigrok-cli.git/blobdiff - parsers.c
sr: more API cleanup and documentation
[sigrok-cli.git] / parsers.c
index b895825030b9052433eebaf1f6c443dc02b19eb2..6f47e61de26e289160014a6d772b4b7d35f6937c 100644 (file)
--- a/parsers.c
+++ b/parsers.c
@@ -33,7 +33,9 @@ char **parse_probestring(int max_probes, const char *probestring)
 
        error = FALSE;
        range = NULL;
-       probelist = g_malloc0(max_probes * sizeof(char *));
+       if (!(probelist = g_try_malloc0(max_probes * sizeof(char *)))) {
+               /* TODO: Handle errors. */
+       }
        tokens = g_strsplit(probestring, ",", max_probes);
 
        for (i = 0; tokens[i]; i++) {
@@ -147,7 +149,7 @@ struct sr_device *parse_devicestring(const char *devicestring)
                devices = sr_device_list();
                for (l = devices; l; l = l->next) {
                        d = l->data;
-                       if (strstr(d->plugin->name, "demo"))
+                       if (sr_device_has_hwcap(d, SR_HWCAP_DEMO_DEVICE))
                                continue;
                        if (device_cnt == device_num) {
                                if (device_num == device_cnt) {
@@ -167,7 +169,7 @@ struct sr_device *parse_devicestring(const char *devicestring)
                        plugin = p->data;
                        if (strcmp(plugin->name, devicestring))
                                continue;
-                       num_devices = sr_init_hwplugins(plugin);
+                       num_devices = sr_init_hwplugin(plugin);
                        if (num_devices == 1) {
                                devices = sr_device_list();
                                device = devices->data;