]> sigrok.org Git - sigrok-cli.git/blobdiff - show.c
doc: update sigrok-cli(1) for channel assignment to decoder inputs
[sigrok-cli.git] / show.c
diff --git a/show.c b/show.c
index 9ce35b4a61b4360e39dcc03cbc6c985371a580bb..85b440989212f04d2480f68bb242c155117c5b0f 100644 (file)
--- a/show.c
+++ b/show.c
@@ -418,7 +418,7 @@ void show_dev_detail(void)
        char *tmp_str, *s, c;
        const char **stropts;
        double tmp_flt;
-       gboolean have_tmp_flt;
+       gboolean have_tmp_flt, have_curr;
        const double *fltopts;
 
        if (parse_driver(opt_drv, &driver_from_opt, NULL)) {
@@ -465,8 +465,11 @@ void show_dev_detail(void)
                printf("Channel groups:\n");
                for (cgl = channel_groups; cgl; cgl = cgl->next) {
                        cg = cgl->data;
-                       printf("    %s: channel%s", cg->name,
-                                       g_slist_length(cg->channels) > 1 ? "s" : "");
+                       printf("    %s: ", cg->name);
+                       if (g_slist_length(cg->channels) == 0)
+                               printf("No channels");
+                       else
+                               printf("channel%s", g_slist_length(cg->channels) > 1 ? "s" : "");
                        for (chl = cg->channels; chl; chl = chl->next) {
                                ch = chl->data;
                                printf(" %s", ch->name);
@@ -715,12 +718,11 @@ void show_dev_detail(void)
                                continue;
                        }
 
+                       have_curr = FALSE;
                        if (maybe_config_get(driver, sdi, channel_group, key, &gvar) == SR_OK) {
                                g_variant_get(gvar, "(dd)", &dcur_low, &dcur_high);
                                g_variant_unref(gvar);
-                       } else {
-                               dcur_low = 0;
-                               dcur_high = 0;
+                               have_curr = TRUE;
                        }
 
                        num_elements = g_variant_n_children(gvar_list);
@@ -731,6 +733,8 @@ void show_dev_detail(void)
                                if (i)
                                        printf(", ");
                                printf("%.1f-%.1f", dlow, dhigh);
+                               if (!have_curr)
+                                       continue;
                                if (dlow == dcur_low && dhigh == dcur_high)
                                        printf(" (current)");
                        }