]> sigrok.org Git - sigrok-cli.git/blobdiff - show.c
Fix generic sr_option enumeration.
[sigrok-cli.git] / show.c
diff --git a/show.c b/show.c
index 4c0cd8f6737667e3322307f3173da232f63ac1a4..79273a4d4f52174cbd2193e2e6aef80170b4923f 100644 (file)
--- a/show.c
+++ b/show.c
@@ -647,8 +647,9 @@ void show_pd_detail(void)
 void show_output(void)
 {
        const struct sr_output_module *omod;
-       const struct sr_option *opt;
+       const struct sr_option **opts;
        GSList *l;
+       int i;
        char *s, **tok;
 
        tok = g_strsplit(opt_output_format, ":", 0);
@@ -658,17 +659,17 @@ void show_output(void)
        printf("ID: %s\nName: %s\n", sr_output_id_get(omod),
                        sr_output_name_get(omod));
        printf("Description: %s\n", sr_output_description_get(omod));
-       if ((opt = sr_output_options_get(omod))) {
+       if ((opts = sr_output_options_get(omod))) {
                printf("Options:\n");
-               while (opt->id) {
-                       printf("  %s: %s", opt->id, opt->desc);
-                       if (opt->def) {
-                               s = g_variant_print(opt->def, FALSE);
+               for (i = 0; opts[i]; i++) {
+                       printf("  %s: %s", opts[i]->id, opts[i]->desc);
+                       if (opts[i]->def) {
+                               s = g_variant_print(opts[i]->def, FALSE);
                                printf(" (default %s", s);
                                g_free(s);
-                               if (opt->values) {
+                               if (opts[i]->values) {
                                        printf(", possible values ");
-                                       for (l = opt->values; l; l = l->next) {
+                                       for (l = opts[i]->values; l; l = l->next) {
                                                s = g_variant_print((GVariant *)l->data, FALSE);
                                                printf("%s%s", s, l->next ? ", " : "");
                                                g_free(s);
@@ -677,9 +678,8 @@ void show_output(void)
                                printf(")");
                        }
                        printf("\n");
-                       opt++;
                }
-               sr_output_options_free(omod);
+               sr_output_options_free(opts);
        }
        g_strfreev(tok);
 }