From dded02f515b59cd7d3bb7ada481df0c6e3ce11ed Mon Sep 17 00:00:00 2001 From: Uwe Hermann Date: Wed, 24 Feb 2021 21:21:37 +0100 Subject: [PATCH] show: Only use decoder tags if they're available. This allows us to reduce the libsigrokdecode requirement back to >= 0.5.0, i.e. we don't strictly need libsigrokdecode >= 0.6.0. --- README | 2 +- show.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/README b/README index d33597a..2bbf6ec 100644 --- a/README +++ b/README @@ -29,7 +29,7 @@ Requirements - pkg-config >= 0.22 - libglib >= 2.32.0 - libsigrok >= 0.5.0 - - libsigrokdecode >= 0.6.0 + - libsigrokdecode >= 0.5.0 Building and installing diff --git a/show.c b/show.c index 5c35bb3..9ce35b4 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); } @@ -880,6 +894,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 +903,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) { -- 2.30.2