X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-cli.git;a=blobdiff_plain;f=show.c;h=5243e53cc07aad1817b37cbd2bb2132a57ce83ac;hp=8fbd0af157a028e959dec593f235c58b0ca4f399;hb=7ce834c1166fcf57ebb0e20bf4e7ba9e856aa6ce;hpb=0171a4a7a49fd1948b3e420bc553a024413d487e diff --git a/show.c b/show.c index 8fbd0af..5243e53 100644 --- a/show.c +++ b/show.c @@ -22,6 +22,10 @@ #include #include "sigrok-cli.h" +#define DECODERS_HAVE_TAGS \ + ((SRD_PACKAGE_VERSION_MAJOR > 0) || \ + (SRD_PACKAGE_VERSION_MAJOR == 0) && (SRD_PACKAGE_VERSION_MINOR > 5)) + static gint sort_inputs(gconstpointer a, gconstpointer b) { return strcmp(sr_input_id_get((struct sr_input_module *)a), @@ -235,11 +239,13 @@ void show_supported_wiki(void) for (l = sl; l; l = l->next) { dec = l->data; +#if DECODERS_HAVE_TAGS GString *tags = g_string_new(NULL); for (GSList *t = dec->tags; t; t = t->next) g_string_append_printf(tags, "%s, ", (char *)t->data); if (tags->len != 0) g_string_truncate(tags, tags->len - 2); +#endif GString *in = g_string_new(NULL); for (GSList *t = dec->inputs; t; t = t->next) @@ -257,11 +263,19 @@ void show_supported_wiki(void) else g_string_truncate(out, out->len - 2); +#if DECODERS_HAVE_TAGS printf("{{pd|%s|%s|%s|%s|%s|%s|%s|supported}}\n", dec->id, dec->name, dec->longname, dec->desc, tags->str, in->str, out->str); +#else + printf("{{pd|%s|%s|%s|%s|%s|%s|supported}}\n", + dec->id, dec->name, dec->longname, dec->desc, + in->str, out->str); +#endif +#if DECODERS_HAVE_TAGS g_string_free(tags, TRUE); +#endif g_string_free(in, TRUE); g_string_free(out, TRUE); } @@ -441,7 +455,7 @@ void show_dev_detail(void) * returned, or which values for them. */ select_channels(sdi); - channel_group = select_channel_group(sdi); + channel_group = lookup_channel_group(sdi, NULL); if (!(opts = sr_dev_options(driver, sdi, channel_group))) /* Driver supports no device instance options. */ @@ -451,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); @@ -880,6 +897,7 @@ static void show_pd_detail_single(const char *pd) printf("None.\n"); } printf("Decoder tags:\n"); +#if DECODERS_HAVE_TAGS if (dec->tags) { for (l = dec->tags; l; l = l->next) { str = l->data; @@ -888,6 +906,7 @@ static void show_pd_detail_single(const char *pd) } else { printf("None.\n"); } +#endif printf("Annotation classes:\n"); if (dec->annotations) { for (l = dec->annotations; l; l = l->next) {